Generated by Cython 0.29.24

Yellow lines hint at Python interaction.
Click on a line that starts with a "+" to see the C code that Cython generated for it.

Raw output: join.c

+0001: import cython
  __pyx_t_3 = __Pyx_PyDict_NewPresized(0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_test, __pyx_t_3) < 0) __PYX_ERR(0, 1, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 0002: from cython import Py_ssize_t
+0003: import numpy as np
  __pyx_t_1 = __Pyx_Import(__pyx_n_s_numpy, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_np, __pyx_t_1) < 0) __PYX_ERR(0, 3, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
 0004: 
 0005: cimport numpy as cnp
 0006: from numpy cimport (
 0007:     int64_t,
 0008:     intp_t,
 0009:     ndarray,
 0010:     uint64_t,
 0011: )
 0012: 
+0013: cnp.import_array()
  __pyx_t_2 = __pyx_f_5numpy_import_array(); if (unlikely(__pyx_t_2 == ((int)-1))) __PYX_ERR(0, 13, __pyx_L1_error)
 0014: 
+0015: from pandas._libs.algos import groupsort_indexer
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(__pyx_n_s_groupsort_indexer);
  __Pyx_GIVEREF(__pyx_n_s_groupsort_indexer);
  PyList_SET_ITEM(__pyx_t_1, 0, __pyx_n_s_groupsort_indexer);
  __pyx_t_3 = __Pyx_Import(__pyx_n_s_pandas__libs_algos, __pyx_t_1, 0); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_ImportFrom(__pyx_t_3, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_groupsort_indexer, __pyx_t_1) < 0) __PYX_ERR(0, 15, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
 0016: 
 0017: from pandas._libs.dtypes cimport (
 0018:     numeric_object_t,
 0019:     numeric_t,
 0020: )
 0021: 
 0022: 
 0023: @cython.wraparound(False)
 0024: @cython.boundscheck(False)
+0025: def inner_join(const intp_t[:] left, const intp_t[:] right,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_1inner_join(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_1inner_join = {"inner_join", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_1inner_join, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_1inner_join(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_v_max_groups;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,&__pyx_n_s_max_groups,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join", 1, 3, 3, 1); __PYX_ERR(0, 25, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_groups)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join", 1, 3, 3, 2); __PYX_ERR(0, 25, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join") < 0)) __PYX_ERR(0, 25, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_intp_t__const__(values[0], 0); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 25, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_intp_t__const__(values[1], 0); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 25, __pyx_L3_error)
    __pyx_v_max_groups = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_max_groups == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 26, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 25, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_inner_join(__pyx_self, __pyx_v_left, __pyx_v_right, __pyx_v_max_groups);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_inner_join(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right, Py_ssize_t __pyx_v_max_groups) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_k;
  Py_ssize_t __pyx_v_count;
  __Pyx_memviewslice __pyx_v_left_sorter = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_sorter = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_count = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_count = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_indexer = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_indexer = { 0, 0, { 0 }, { 0 }, { 0 } };
  __pyx_t_5numpy_intp_t __pyx_v_lc;
  __pyx_t_5numpy_intp_t __pyx_v_rc;
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_position;
  Py_ssize_t __pyx_v_offset;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join", 0);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
  __Pyx_AddTraceback("pandas._libs.join.inner_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_sorter, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_sorter, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_count, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_count, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_indexer, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_indexer, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__31 = PyTuple_Pack(19, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_max_groups, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_count, __pyx_n_s_left_sorter, __pyx_n_s_right_sorter, __pyx_n_s_left_count, __pyx_n_s_right_count, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_lc, __pyx_n_s_rc, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_position, __pyx_n_s_offset); if (unlikely(!__pyx_tuple__31)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__31);
  __Pyx_GIVEREF(__pyx_tuple__31);
/* … */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_1inner_join, NULL, __pyx_n_s_pandas__libs_join); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_inner_join, __pyx_t_3) < 0) __PYX_ERR(0, 25, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__32 = (PyObject*)__Pyx_PyCode_New(3, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__31, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_inner_join, 25, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__32)) __PYX_ERR(0, 25, __pyx_L1_error)
 0026:                Py_ssize_t max_groups):
 0027:     cdef:
+0028:         Py_ssize_t i, j, k, count = 0
  __pyx_v_count = 0;
 0029:         intp_t[::1] left_sorter, right_sorter
 0030:         intp_t[::1] left_count, right_count
 0031:         intp_t[::1] left_indexer, right_indexer
 0032:         intp_t lc, rc
+0033:         Py_ssize_t left_pos = 0, right_pos = 0, position = 0
  __pyx_v_left_pos = 0;
  __pyx_v_right_pos = 0;
  __pyx_v_position = 0;
 0034:         Py_ssize_t offset
 0035: 
+0036:     left_sorter, left_count = groupsort_indexer(left, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 36, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 36, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 36, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_7);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 36, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 36, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 36, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_7 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_7)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_4), 2) < 0) __PYX_ERR(0, 36, __pyx_L1_error)
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 36, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_7, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 36, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_left_sorter = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
  __pyx_v_left_count = __pyx_t_10;
  __pyx_t_10.memview = NULL;
  __pyx_t_10.data = NULL;
+0037:     right_sorter, right_count = groupsort_indexer(right, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 37, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_5);
    #else
    __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 37, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_7);
    index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_4), 2) < 0) __PYX_ERR(0, 37, __pyx_L1_error)
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 37, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
  __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_7, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 37, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_right_sorter = __pyx_t_10;
  __pyx_t_10.memview = NULL;
  __pyx_t_10.data = NULL;
  __pyx_v_right_count = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
 0038: 
+0039:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L9;
        }
        __pyx_L9:;
      }
  }
 0040:         # First pass, determine size of result set, do not use the NA group
+0041:         for i in range(1, max_groups + 1):
        __pyx_t_11 = (__pyx_v_max_groups + 1);
        __pyx_t_12 = __pyx_t_11;
        for (__pyx_t_13 = 1; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
          __pyx_v_i = __pyx_t_13;
+0042:             lc = left_count[i]
          __pyx_t_14 = __pyx_v_i;
          __pyx_v_lc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_14)) )));
+0043:             rc = right_count[i]
          __pyx_t_14 = __pyx_v_i;
          __pyx_v_rc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_14)) )));
 0044: 
+0045:             if rc > 0 and lc > 0:
          __pyx_t_16 = ((__pyx_v_rc > 0) != 0);
          if (__pyx_t_16) {
          } else {
            __pyx_t_15 = __pyx_t_16;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_16 = ((__pyx_v_lc > 0) != 0);
          __pyx_t_15 = __pyx_t_16;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_15) {
/* … */
          }
        }
      }
+0046:                 count += lc * rc
            __pyx_v_count = (__pyx_v_count + (__pyx_v_lc * __pyx_v_rc));
 0047: 
+0048:     left_indexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_intp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 48, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_left_indexer = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
+0049:     right_indexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 49, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_right_indexer = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
 0050: 
+0051:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L17;
        }
        __pyx_L17:;
      }
  }
 0052:         # exclude the NA group
+0053:         left_pos = left_count[0]
        __pyx_t_14 = 0;
        __pyx_v_left_pos = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_14)) )));
+0054:         right_pos = right_count[0]
        __pyx_t_14 = 0;
        __pyx_v_right_pos = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_14)) )));
+0055:         for i in range(1, max_groups + 1):
        __pyx_t_11 = (__pyx_v_max_groups + 1);
        __pyx_t_12 = __pyx_t_11;
        for (__pyx_t_13 = 1; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
          __pyx_v_i = __pyx_t_13;
+0056:             lc = left_count[i]
          __pyx_t_14 = __pyx_v_i;
          __pyx_v_lc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_14)) )));
+0057:             rc = right_count[i]
          __pyx_t_14 = __pyx_v_i;
          __pyx_v_rc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_14)) )));
 0058: 
+0059:             if rc > 0 and lc > 0:
          __pyx_t_16 = ((__pyx_v_rc > 0) != 0);
          if (__pyx_t_16) {
          } else {
            __pyx_t_15 = __pyx_t_16;
            goto __pyx_L21_bool_binop_done;
          }
          __pyx_t_16 = ((__pyx_v_lc > 0) != 0);
          __pyx_t_15 = __pyx_t_16;
          __pyx_L21_bool_binop_done:;
          if (__pyx_t_15) {
/* … */
          }
+0060:                 for j in range(lc):
            __pyx_t_17 = __pyx_v_lc;
            __pyx_t_18 = __pyx_t_17;
            for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
              __pyx_v_j = __pyx_t_19;
+0061:                     offset = position + j * rc
              __pyx_v_offset = (__pyx_v_position + (__pyx_v_j * __pyx_v_rc));
+0062:                     for k in range(rc):
              __pyx_t_20 = __pyx_v_rc;
              __pyx_t_21 = __pyx_t_20;
              for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) {
                __pyx_v_k = __pyx_t_22;
+0063:                         left_indexer[offset + k] = left_pos + j
                __pyx_t_14 = (__pyx_v_offset + __pyx_v_k);
                *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_indexer.data) + __pyx_t_14)) )) = (__pyx_v_left_pos + __pyx_v_j);
+0064:                         right_indexer[offset + k] = right_pos + k
                __pyx_t_14 = (__pyx_v_offset + __pyx_v_k);
                *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_indexer.data) + __pyx_t_14)) )) = (__pyx_v_right_pos + __pyx_v_k);
              }
            }
+0065:                 position += lc * rc
            __pyx_v_position = (__pyx_v_position + (__pyx_v_lc * __pyx_v_rc));
+0066:             left_pos += lc
          __pyx_v_left_pos = (__pyx_v_left_pos + __pyx_v_lc);
+0067:             right_pos += rc
          __pyx_v_right_pos = (__pyx_v_right_pos + __pyx_v_rc);
        }
 0068: 
 0069:         # Will overwrite left/right indexer with the result
+0070:         _get_result_indexer(left_sorter, left_indexer)
        __pyx_f_6pandas_5_libs_4join__get_result_indexer(__pyx_v_left_sorter, __pyx_v_left_indexer);
+0071:         _get_result_indexer(right_sorter, right_indexer)
        __pyx_f_6pandas_5_libs_4join__get_result_indexer(__pyx_v_right_sorter, __pyx_v_right_indexer);
      }
 0072: 
+0073:     return np.asarray(left_indexer), np.asarray(right_indexer)
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_left_indexer, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_indexer, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_7 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 73, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
  __pyx_t_4 = 0;
  __pyx_t_7 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 0074: 
 0075: 
 0076: @cython.wraparound(False)
 0077: @cython.boundscheck(False)
+0078: def left_outer_join(const intp_t[:] left, const intp_t[:] right,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_3left_outer_join(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_3left_outer_join = {"left_outer_join", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_3left_outer_join, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_3left_outer_join(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_v_max_groups;
  int __pyx_v_sort;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_outer_join (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,&__pyx_n_s_max_groups,&__pyx_n_s_sort,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_outer_join", 0, 3, 4, 1); __PYX_ERR(0, 78, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_groups)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_outer_join", 0, 3, 4, 2); __PYX_ERR(0, 78, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_sort);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_outer_join") < 0)) __PYX_ERR(0, 78, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_intp_t__const__(values[0], 0); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 78, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_intp_t__const__(values[1], 0); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 78, __pyx_L3_error)
    __pyx_v_max_groups = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_max_groups == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L3_error)
    if (values[3]) {
      __pyx_v_sort = __Pyx_PyObject_IsTrue(values[3]); if (unlikely((__pyx_v_sort == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 79, __pyx_L3_error)
    } else {
/* … */
  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_2left_outer_join(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right, Py_ssize_t __pyx_v_max_groups, int __pyx_v_sort) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_k;
  Py_ssize_t __pyx_v_count;
  PyArrayObject *__pyx_v_rev = 0;
  __Pyx_memviewslice __pyx_v_left_count = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_count = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_sorter = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_sorter = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_indexer = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_indexer = { 0, 0, { 0 }, { 0 }, { 0 } };
  __pyx_t_5numpy_intp_t __pyx_v_lc;
  __pyx_t_5numpy_intp_t __pyx_v_rc;
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_position;
  Py_ssize_t __pyx_v_offset;
  CYTHON_UNUSED PyObject *__pyx_v__ = NULL;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rev;
  __Pyx_Buffer __pyx_pybuffer_rev;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_outer_join", 0);
  __pyx_pybuffer_rev.pybuffer.buf = NULL;
  __pyx_pybuffer_rev.refcount = 0;
  __pyx_pybuffernd_rev.data = NULL;
  __pyx_pybuffernd_rev.rcbuffer = &__pyx_pybuffer_rev;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
  __Pyx_XDECREF(__pyx_t_29);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rev.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_outer_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rev.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_rev);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_count, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_count, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_sorter, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_sorter, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_indexer, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_indexer, 1);
  __Pyx_XDECREF(__pyx_v__);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__34 = PyTuple_Pack(22, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_max_groups, __pyx_n_s_sort, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_count, __pyx_n_s_rev, __pyx_n_s_left_count, __pyx_n_s_right_count, __pyx_n_s_left_sorter, __pyx_n_s_right_sorter, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_lc, __pyx_n_s_rc, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_position, __pyx_n_s_offset, __pyx_n_s__33); if (unlikely(!__pyx_tuple__34)) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__34);
  __Pyx_GIVEREF(__pyx_tuple__34);
/* … */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_3left_outer_join, NULL, __pyx_n_s_pandas__libs_join); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_left_outer_join, __pyx_t_3) < 0) __PYX_ERR(0, 78, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__35 = (PyObject*)__Pyx_PyCode_New(4, 0, 22, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__34, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_left_outer_join, 78, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__35)) __PYX_ERR(0, 78, __pyx_L1_error)
+0079:                     Py_ssize_t max_groups, bint sort=True):
      __pyx_v_sort = ((int)1);
    }
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_outer_join", 0, 3, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 78, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_outer_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_2left_outer_join(__pyx_self, __pyx_v_left, __pyx_v_right, __pyx_v_max_groups, __pyx_v_sort);
 0080:     cdef:
+0081:         Py_ssize_t i, j, k, count = 0
  __pyx_v_count = 0;
 0082:         ndarray[intp_t] rev
 0083:         intp_t[::1] left_count, right_count
 0084:         intp_t[::1] left_sorter, right_sorter
 0085:         intp_t[::1] left_indexer, right_indexer
 0086:         intp_t lc, rc
+0087:         Py_ssize_t left_pos = 0, right_pos = 0, position = 0
  __pyx_v_left_pos = 0;
  __pyx_v_right_pos = 0;
  __pyx_v_position = 0;
 0088:         Py_ssize_t offset
 0089: 
+0090:     left_sorter, left_count = groupsort_indexer(left, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 90, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_7);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 90, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_7 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_7)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_4), 2) < 0) __PYX_ERR(0, 90, __pyx_L1_error)
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 90, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_7, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 90, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_left_sorter = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
  __pyx_v_left_count = __pyx_t_10;
  __pyx_t_10.memview = NULL;
  __pyx_t_10.data = NULL;
+0091:     right_sorter, right_count = groupsort_indexer(right, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 91, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 91, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_5);
    #else
    __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 91, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_7);
    index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_4), 2) < 0) __PYX_ERR(0, 91, __pyx_L1_error)
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 91, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
  __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_7, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 91, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_right_sorter = __pyx_t_10;
  __pyx_t_10.memview = NULL;
  __pyx_t_10.data = NULL;
  __pyx_v_right_count = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
 0092: 
+0093:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L9;
        }
        __pyx_L9:;
      }
  }
 0094:         # First pass, determine size of result set, do not use the NA group
+0095:         for i in range(1, max_groups + 1):
        __pyx_t_11 = (__pyx_v_max_groups + 1);
        __pyx_t_12 = __pyx_t_11;
        for (__pyx_t_13 = 1; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
          __pyx_v_i = __pyx_t_13;
+0096:             if right_count[i] > 0:
          __pyx_t_14 = __pyx_v_i;
          __pyx_t_15 = (((*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_14)) ))) > 0) != 0);
          if (__pyx_t_15) {
/* … */
            goto __pyx_L12;
          }
+0097:                 count += left_count[i] * right_count[i]
            __pyx_t_14 = __pyx_v_i;
            __pyx_t_16 = __pyx_v_i;
            __pyx_v_count = (__pyx_v_count + ((*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_14)) ))) * (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_16)) )))));
 0098:             else:
+0099:                 count += left_count[i]
          /*else*/ {
            __pyx_t_16 = __pyx_v_i;
            __pyx_v_count = (__pyx_v_count + (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_16)) ))));
          }
          __pyx_L12:;
        }
      }
 0100: 
+0101:     left_indexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_intp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 101, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_left_indexer = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
+0102:     right_indexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 102, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_right_indexer = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
 0103: 
+0104:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L15;
        }
        __pyx_L15:;
      }
  }
 0105:         # exclude the NA group
+0106:         left_pos = left_count[0]
        __pyx_t_16 = 0;
        __pyx_v_left_pos = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_16)) )));
+0107:         right_pos = right_count[0]
        __pyx_t_16 = 0;
        __pyx_v_right_pos = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_16)) )));
+0108:         for i in range(1, max_groups + 1):
        __pyx_t_11 = (__pyx_v_max_groups + 1);
        __pyx_t_12 = __pyx_t_11;
        for (__pyx_t_13 = 1; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
          __pyx_v_i = __pyx_t_13;
+0109:             lc = left_count[i]
          __pyx_t_16 = __pyx_v_i;
          __pyx_v_lc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_16)) )));
+0110:             rc = right_count[i]
          __pyx_t_16 = __pyx_v_i;
          __pyx_v_rc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_16)) )));
 0111: 
+0112:             if rc == 0:
          __pyx_t_15 = ((__pyx_v_rc == 0) != 0);
          if (__pyx_t_15) {
/* … */
            goto __pyx_L18;
          }
+0113:                 for j in range(lc):
            __pyx_t_17 = __pyx_v_lc;
            __pyx_t_18 = __pyx_t_17;
            for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
              __pyx_v_j = __pyx_t_19;
+0114:                     left_indexer[position + j] = left_pos + j
              __pyx_t_16 = (__pyx_v_position + __pyx_v_j);
              *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_indexer.data) + __pyx_t_16)) )) = (__pyx_v_left_pos + __pyx_v_j);
+0115:                     right_indexer[position + j] = -1
              __pyx_t_16 = (__pyx_v_position + __pyx_v_j);
              *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_indexer.data) + __pyx_t_16)) )) = -1;
            }
+0116:                 position += lc
            __pyx_v_position = (__pyx_v_position + __pyx_v_lc);
 0117:             else:
+0118:                 for j in range(lc):
          /*else*/ {
            __pyx_t_17 = __pyx_v_lc;
            __pyx_t_18 = __pyx_t_17;
            for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
              __pyx_v_j = __pyx_t_19;
+0119:                     offset = position + j * rc
              __pyx_v_offset = (__pyx_v_position + (__pyx_v_j * __pyx_v_rc));
+0120:                     for k in range(rc):
              __pyx_t_20 = __pyx_v_rc;
              __pyx_t_21 = __pyx_t_20;
              for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) {
                __pyx_v_k = __pyx_t_22;
+0121:                         left_indexer[offset + k] = left_pos + j
                __pyx_t_16 = (__pyx_v_offset + __pyx_v_k);
                *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_indexer.data) + __pyx_t_16)) )) = (__pyx_v_left_pos + __pyx_v_j);
+0122:                         right_indexer[offset + k] = right_pos + k
                __pyx_t_16 = (__pyx_v_offset + __pyx_v_k);
                *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_indexer.data) + __pyx_t_16)) )) = (__pyx_v_right_pos + __pyx_v_k);
              }
            }
+0123:                 position += lc * rc
            __pyx_v_position = (__pyx_v_position + (__pyx_v_lc * __pyx_v_rc));
          }
          __pyx_L18:;
+0124:             left_pos += lc
          __pyx_v_left_pos = (__pyx_v_left_pos + __pyx_v_lc);
+0125:             right_pos += rc
          __pyx_v_right_pos = (__pyx_v_right_pos + __pyx_v_rc);
        }
 0126: 
 0127:         # Will overwrite left/right indexer with the result
+0128:         _get_result_indexer(left_sorter, left_indexer)
        __pyx_f_6pandas_5_libs_4join__get_result_indexer(__pyx_v_left_sorter, __pyx_v_left_indexer);
+0129:         _get_result_indexer(right_sorter, right_indexer)
        __pyx_f_6pandas_5_libs_4join__get_result_indexer(__pyx_v_right_sorter, __pyx_v_right_indexer);
      }
 0130: 
+0131:     if not sort:  # if not asked to sort, revert to original order
  __pyx_t_15 = ((!(__pyx_v_sort != 0)) != 0);
  if (__pyx_t_15) {
/* … */
  }
+0132:         if len(left) == len(left_indexer):
    __pyx_t_23 = __Pyx_MemoryView_Len(__pyx_v_left); 
    __pyx_t_24 = __Pyx_MemoryView_Len(__pyx_v_left_indexer); 
    __pyx_t_15 = ((__pyx_t_23 == __pyx_t_24) != 0);
    if (__pyx_t_15) {
/* … */
      goto __pyx_L26;
    }
 0133:             # no multiple matches for any row on the left
 0134:             # this is a short-cut to avoid groupsort_indexer
 0135:             # otherwise, the `else` path also works in this case
+0136:             rev = np.empty(len(left), dtype=np.intp)
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __pyx_t_24 = __Pyx_MemoryView_Len(__pyx_v_left); 
      __pyx_t_4 = __Pyx_PyInt_FromSize_t(__pyx_t_24); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_GIVEREF(__pyx_t_4);
      PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_t_4 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 136, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, __pyx_t_4); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 136, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_5);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 136, __pyx_L1_error)
      __pyx_t_25 = ((PyArrayObject *)__pyx_t_5);
      {
        __Pyx_BufFmt_StackElem __pyx_stack[1];
        __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rev.rcbuffer->pybuffer);
        __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rev.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
        if (unlikely(__pyx_t_6 < 0)) {
          PyErr_Fetch(&__pyx_t_26, &__pyx_t_27, &__pyx_t_28);
          if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rev.rcbuffer->pybuffer, (PyObject*)__pyx_v_rev, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
            Py_XDECREF(__pyx_t_26); Py_XDECREF(__pyx_t_27); Py_XDECREF(__pyx_t_28);
            __Pyx_RaiseBufferFallbackError();
          } else {
            PyErr_Restore(__pyx_t_26, __pyx_t_27, __pyx_t_28);
          }
          __pyx_t_26 = __pyx_t_27 = __pyx_t_28 = 0;
        }
        __pyx_pybuffernd_rev.diminfo[0].strides = __pyx_pybuffernd_rev.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rev.diminfo[0].shape = __pyx_pybuffernd_rev.rcbuffer->pybuffer.shape[0];
        if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 136, __pyx_L1_error)
      }
      __pyx_t_25 = 0;
      __pyx_v_rev = ((PyArrayObject *)__pyx_t_5);
      __pyx_t_5 = 0;
+0137:             rev.put(np.asarray(left_sorter), np.arange(len(left)))
      __pyx_t_4 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_rev), __pyx_n_s_put); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_left_sorter, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_1, function);
        }
      }
      __pyx_t_7 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2);
      __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_7);
      __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_arange); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_3);
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_24 = __Pyx_MemoryView_Len(__pyx_v_left); 
      __pyx_t_2 = __Pyx_PyInt_FromSize_t(__pyx_t_24); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_29 = NULL;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
        __pyx_t_29 = PyMethod_GET_SELF(__pyx_t_3);
        if (likely(__pyx_t_29)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
          __Pyx_INCREF(__pyx_t_29);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_3, function);
        }
      }
      __pyx_t_1 = (__pyx_t_29) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_29, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_2);
      __Pyx_XDECREF(__pyx_t_29); __pyx_t_29 = 0;
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 137, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      __pyx_t_3 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_3)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_3);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_7, __pyx_t_1};
        __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 137, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_7, __pyx_t_1};
        __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 137, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else
      #endif
      {
        __pyx_t_2 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_2);
        if (__pyx_t_3) {
          __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_3); __pyx_t_3 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_7);
        PyTuple_SET_ITEM(__pyx_t_2, 0+__pyx_t_6, __pyx_t_7);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_2, 1+__pyx_t_6, __pyx_t_1);
        __pyx_t_7 = 0;
        __pyx_t_1 = 0;
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_2, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 137, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
 0138:         else:
+0139:             rev, _ = groupsort_indexer(left_indexer, len(left))
    /*else*/ {
      __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_4);
      __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_left_indexer, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 139, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_2);
      __pyx_t_24 = __Pyx_MemoryView_Len(__pyx_v_left); 
      __pyx_t_1 = __Pyx_PyInt_FromSize_t(__pyx_t_24); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __pyx_t_7 = NULL;
      __pyx_t_6 = 0;
      if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_4))) {
        __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_4);
        if (likely(__pyx_t_7)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_4);
          __Pyx_INCREF(__pyx_t_7);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_4, function);
          __pyx_t_6 = 1;
        }
      }
      #if CYTHON_FAST_PYCALL
      if (PyFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_1};
        __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else
      #endif
      #if CYTHON_FAST_PYCCALL
      if (__Pyx_PyFastCFunction_Check(__pyx_t_4)) {
        PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_2, __pyx_t_1};
        __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_4, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error)
        __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
      } else
      #endif
      {
        __pyx_t_3 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        if (__pyx_t_7) {
          __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_7); __pyx_t_7 = NULL;
        }
        __Pyx_GIVEREF(__pyx_t_2);
        PyTuple_SET_ITEM(__pyx_t_3, 0+__pyx_t_6, __pyx_t_2);
        __Pyx_GIVEREF(__pyx_t_1);
        PyTuple_SET_ITEM(__pyx_t_3, 1+__pyx_t_6, __pyx_t_1);
        __pyx_t_2 = 0;
        __pyx_t_1 = 0;
        __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_3, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      }
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
        PyObject* sequence = __pyx_t_5;
        Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
        if (unlikely(size != 2)) {
          if (size > 2) __Pyx_RaiseTooManyValuesError(2);
          else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
          __PYX_ERR(0, 139, __pyx_L1_error)
        }
        #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
        if (likely(PyTuple_CheckExact(sequence))) {
          __pyx_t_4 = PyTuple_GET_ITEM(sequence, 0); 
          __pyx_t_3 = PyTuple_GET_ITEM(sequence, 1); 
        } else {
          __pyx_t_4 = PyList_GET_ITEM(sequence, 0); 
          __pyx_t_3 = PyList_GET_ITEM(sequence, 1); 
        }
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(__pyx_t_3);
        #else
        __pyx_t_4 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_4);
        __pyx_t_3 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_3);
        #endif
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
      } else {
        Py_ssize_t index = -1;
        __pyx_t_1 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 139, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        __pyx_t_8 = Py_TYPE(__pyx_t_1)->tp_iternext;
        index = 0; __pyx_t_4 = __pyx_t_8(__pyx_t_1); if (unlikely(!__pyx_t_4)) goto __pyx_L27_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_4);
        index = 1; __pyx_t_3 = __pyx_t_8(__pyx_t_1); if (unlikely(!__pyx_t_3)) goto __pyx_L27_unpacking_failed;
        __Pyx_GOTREF(__pyx_t_3);
        if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_1), 2) < 0) __PYX_ERR(0, 139, __pyx_L1_error)
        __pyx_t_8 = NULL;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        goto __pyx_L28_unpacking_done;
        __pyx_L27_unpacking_failed:;
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_8 = NULL;
        if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
        __PYX_ERR(0, 139, __pyx_L1_error)
        __pyx_L28_unpacking_done:;
      }
      if (!(likely(((__pyx_t_4) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_4, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 139, __pyx_L1_error)
      __pyx_t_25 = ((PyArrayObject *)__pyx_t_4);
      {
        __Pyx_BufFmt_StackElem __pyx_stack[1];
        __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rev.rcbuffer->pybuffer);
        __pyx_t_6 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rev.rcbuffer->pybuffer, (PyObject*)__pyx_t_25, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
        if (unlikely(__pyx_t_6 < 0)) {
          PyErr_Fetch(&__pyx_t_28, &__pyx_t_27, &__pyx_t_26);
          if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rev.rcbuffer->pybuffer, (PyObject*)__pyx_v_rev, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
            Py_XDECREF(__pyx_t_28); Py_XDECREF(__pyx_t_27); Py_XDECREF(__pyx_t_26);
            __Pyx_RaiseBufferFallbackError();
          } else {
            PyErr_Restore(__pyx_t_28, __pyx_t_27, __pyx_t_26);
          }
          __pyx_t_28 = __pyx_t_27 = __pyx_t_26 = 0;
        }
        __pyx_pybuffernd_rev.diminfo[0].strides = __pyx_pybuffernd_rev.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rev.diminfo[0].shape = __pyx_pybuffernd_rev.rcbuffer->pybuffer.shape[0];
        if (unlikely(__pyx_t_6 < 0)) __PYX_ERR(0, 139, __pyx_L1_error)
      }
      __pyx_t_25 = 0;
      __pyx_v_rev = ((PyArrayObject *)__pyx_t_4);
      __pyx_t_4 = 0;
      __pyx_v__ = __pyx_t_3;
      __pyx_t_3 = 0;
    }
    __pyx_L26:;
 0140: 
+0141:         return np.asarray(left_indexer).take(rev), np.asarray(right_indexer).take(rev)
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_indexer, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_2 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_2)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_2);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_3 = (__pyx_t_2) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_2, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_take); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_1))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_1);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_1, function);
      }
    }
    __pyx_t_5 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_3, ((PyObject *)__pyx_v_rev)) : __Pyx_PyObject_CallOneArg(__pyx_t_1, ((PyObject *)__pyx_v_rev));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_asarray); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_right_indexer, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __pyx_t_7 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_7)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_7);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_3 = (__pyx_t_7) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_7, __pyx_t_4) : __Pyx_PyObject_CallOneArg(__pyx_t_2, __pyx_t_4);
    __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_take); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_2))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_2);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_2, function);
      }
    }
    __pyx_t_1 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_2, __pyx_t_3, ((PyObject *)__pyx_v_rev)) : __Pyx_PyObject_CallOneArg(__pyx_t_2, ((PyObject *)__pyx_v_rev));
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 141, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_5);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_2, 1, __pyx_t_1);
    __pyx_t_5 = 0;
    __pyx_t_1 = 0;
    __pyx_r = __pyx_t_2;
    __pyx_t_2 = 0;
    goto __pyx_L0;
 0142:     else:
+0143:         return np.asarray(left_indexer), np.asarray(right_indexer)
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_asarray); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_left_indexer, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_5))) {
      __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_5);
      if (likely(__pyx_t_3)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_5);
        __Pyx_INCREF(__pyx_t_3);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_5, function);
      }
    }
    __pyx_t_2 = (__pyx_t_3) ? __Pyx_PyObject_Call2Args(__pyx_t_5, __pyx_t_3, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_5, __pyx_t_1);
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_asarray); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __pyx_memoryview_fromslice(__pyx_v_right_indexer, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_4 = NULL;
    if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_3))) {
      __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_3);
      if (likely(__pyx_t_4)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_3);
        __Pyx_INCREF(__pyx_t_4);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_3, function);
      }
    }
    __pyx_t_5 = (__pyx_t_4) ? __Pyx_PyObject_Call2Args(__pyx_t_3, __pyx_t_4, __pyx_t_1) : __Pyx_PyObject_CallOneArg(__pyx_t_3, __pyx_t_1);
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 143, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_5);
    PyTuple_SET_ITEM(__pyx_t_3, 1, __pyx_t_5);
    __pyx_t_2 = 0;
    __pyx_t_5 = 0;
    __pyx_r = __pyx_t_3;
    __pyx_t_3 = 0;
    goto __pyx_L0;
  }
 0144: 
 0145: 
 0146: @cython.wraparound(False)
 0147: @cython.boundscheck(False)
+0148: def full_outer_join(const intp_t[:] left, const intp_t[:] right,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_5full_outer_join(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_5full_outer_join = {"full_outer_join", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_5full_outer_join, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_5full_outer_join(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right = { 0, 0, { 0 }, { 0 }, { 0 } };
  Py_ssize_t __pyx_v_max_groups;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("full_outer_join (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,&__pyx_n_s_max_groups,0};
    PyObject* values[3] = {0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("full_outer_join", 1, 3, 3, 1); __PYX_ERR(0, 148, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_max_groups)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("full_outer_join", 1, 3, 3, 2); __PYX_ERR(0, 148, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "full_outer_join") < 0)) __PYX_ERR(0, 148, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 3) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
    }
    __pyx_v_left = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_intp_t__const__(values[0], 0); if (unlikely(!__pyx_v_left.memview)) __PYX_ERR(0, 148, __pyx_L3_error)
    __pyx_v_right = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_intp_t__const__(values[1], 0); if (unlikely(!__pyx_v_right.memview)) __PYX_ERR(0, 148, __pyx_L3_error)
    __pyx_v_max_groups = __Pyx_PyIndex_AsSsize_t(values[2]); if (unlikely((__pyx_v_max_groups == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 149, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("full_outer_join", 1, 3, 3, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 148, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.full_outer_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_4full_outer_join(__pyx_self, __pyx_v_left, __pyx_v_right, __pyx_v_max_groups);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_4full_outer_join(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left, __Pyx_memviewslice __pyx_v_right, Py_ssize_t __pyx_v_max_groups) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_k;
  Py_ssize_t __pyx_v_count;
  __Pyx_memviewslice __pyx_v_left_sorter = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_sorter = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_count = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_count = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_indexer = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_indexer = { 0, 0, { 0 }, { 0 }, { 0 } };
  __pyx_t_5numpy_intp_t __pyx_v_lc;
  __pyx_t_5numpy_intp_t __pyx_v_rc;
  __pyx_t_5numpy_intp_t __pyx_v_left_pos;
  __pyx_t_5numpy_intp_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_offset;
  Py_ssize_t __pyx_v_position;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("full_outer_join", 0);
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_7);
  __PYX_XDEC_MEMVIEW(&__pyx_t_9, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_t_10, 1);
  __Pyx_AddTraceback("pandas._libs.join.full_outer_join", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_sorter, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_sorter, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_count, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_count, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_indexer, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_indexer, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__36 = PyTuple_Pack(19, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_max_groups, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_count, __pyx_n_s_left_sorter, __pyx_n_s_right_sorter, __pyx_n_s_left_count, __pyx_n_s_right_count, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_lc, __pyx_n_s_rc, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_offset, __pyx_n_s_position); if (unlikely(!__pyx_tuple__36)) __PYX_ERR(0, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__36);
  __Pyx_GIVEREF(__pyx_tuple__36);
/* … */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_5full_outer_join, NULL, __pyx_n_s_pandas__libs_join); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 148, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_full_outer_join, __pyx_t_3) < 0) __PYX_ERR(0, 148, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__37 = (PyObject*)__Pyx_PyCode_New(3, 0, 19, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__36, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_full_outer_join, 148, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__37)) __PYX_ERR(0, 148, __pyx_L1_error)
 0149:                     Py_ssize_t max_groups):
 0150:     cdef:
+0151:         Py_ssize_t i, j, k, count = 0
  __pyx_v_count = 0;
 0152:         intp_t[::1] left_sorter, right_sorter
 0153:         intp_t[::1] left_count, right_count
 0154:         intp_t[::1] left_indexer, right_indexer
 0155:         intp_t lc, rc
+0156:         intp_t left_pos = 0, right_pos = 0
  __pyx_v_left_pos = 0;
  __pyx_v_right_pos = 0;
+0157:         Py_ssize_t offset, position = 0
  __pyx_v_position = 0;
 0158: 
+0159:     left_sorter, left_count = groupsort_indexer(left, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 159, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_5 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_2))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_2);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_2);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_2, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 159, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_2)) {
    PyObject *__pyx_temp[3] = {__pyx_t_5, __pyx_t_3, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_2, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 159, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_7 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    if (__pyx_t_5) {
      __Pyx_GIVEREF(__pyx_t_5); PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5); __pyx_t_5 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_7, 0+__pyx_t_6, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_7, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_3 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_7, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  }
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 159, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_2 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_2 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_7 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_2);
    __Pyx_INCREF(__pyx_t_7);
    #else
    __pyx_t_2 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __pyx_t_7 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 159, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_2 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_2)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_2);
    index = 1; __pyx_t_7 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_7)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_7);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_4), 2) < 0) __PYX_ERR(0, 159, __pyx_L1_error)
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 159, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 159, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_7, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 159, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_v_left_sorter = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
  __pyx_v_left_count = __pyx_t_10;
  __pyx_t_10.memview = NULL;
  __pyx_t_10.data = NULL;
+0160:     right_sorter, right_count = groupsort_indexer(right, max_groups)
  __Pyx_GetModuleGlobalName(__pyx_t_7, __pyx_n_s_groupsort_indexer); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t__const__, (int (*)(char *, PyObject *)) NULL, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyInt_FromSsize_t(__pyx_v_max_groups); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 160, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_3 = NULL;
  __pyx_t_6 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_3 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_3)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_3);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
      __pyx_t_6 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_7)) {
    PyObject *__pyx_temp[3] = {__pyx_t_3, __pyx_t_2, __pyx_t_4};
    __pyx_t_1 = __Pyx_PyCFunction_FastCall(__pyx_t_7, __pyx_temp+1-__pyx_t_6, 2+__pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  } else
  #endif
  {
    __pyx_t_5 = PyTuple_New(2+__pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    if (__pyx_t_3) {
      __Pyx_GIVEREF(__pyx_t_3); PyTuple_SET_ITEM(__pyx_t_5, 0, __pyx_t_3); __pyx_t_3 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_5, 0+__pyx_t_6, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_5, 1+__pyx_t_6, __pyx_t_4);
    __pyx_t_2 = 0;
    __pyx_t_4 = 0;
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_t_7, __pyx_t_5, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  }
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_1))) || (PyList_CheckExact(__pyx_t_1))) {
    PyObject* sequence = __pyx_t_1;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 160, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_7 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_7 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_5 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_7);
    __Pyx_INCREF(__pyx_t_5);
    #else
    __pyx_t_7 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_7);
    __pyx_t_5 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    #endif
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_4 = PyObject_GetIter(__pyx_t_1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 160, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_4);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_8 = Py_TYPE(__pyx_t_4)->tp_iternext;
    index = 0; __pyx_t_7 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_7)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_7);
    index = 1; __pyx_t_5 = __pyx_t_8(__pyx_t_4); if (unlikely(!__pyx_t_5)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_5);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_8(__pyx_t_4), 2) < 0) __PYX_ERR(0, 160, __pyx_L1_error)
    __pyx_t_8 = NULL;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __pyx_t_8 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 160, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
  __pyx_t_10 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_7, PyBUF_WRITABLE); if (unlikely(!__pyx_t_10.memview)) __PYX_ERR(0, 160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_5, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 160, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_v_right_sorter = __pyx_t_10;
  __pyx_t_10.memview = NULL;
  __pyx_t_10.data = NULL;
  __pyx_v_right_count = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
 0161: 
+0162:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L9;
        }
        __pyx_L9:;
      }
  }
 0163:         # First pass, determine size of result set, do not use the NA group
+0164:         for i in range(1, max_groups + 1):
        __pyx_t_11 = (__pyx_v_max_groups + 1);
        __pyx_t_12 = __pyx_t_11;
        for (__pyx_t_13 = 1; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
          __pyx_v_i = __pyx_t_13;
+0165:             lc = left_count[i]
          __pyx_t_14 = __pyx_v_i;
          __pyx_v_lc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_14)) )));
+0166:             rc = right_count[i]
          __pyx_t_14 = __pyx_v_i;
          __pyx_v_rc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_14)) )));
 0167: 
+0168:             if rc > 0 and lc > 0:
          __pyx_t_16 = ((__pyx_v_rc > 0) != 0);
          if (__pyx_t_16) {
          } else {
            __pyx_t_15 = __pyx_t_16;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_16 = ((__pyx_v_lc > 0) != 0);
          __pyx_t_15 = __pyx_t_16;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_15) {
/* … */
            goto __pyx_L12;
          }
+0169:                 count += lc * rc
            __pyx_v_count = (__pyx_v_count + (__pyx_v_lc * __pyx_v_rc));
 0170:             else:
+0171:                 count += lc + rc
          /*else*/ {
            __pyx_v_count = (__pyx_v_count + (__pyx_v_lc + __pyx_v_rc));
          }
          __pyx_L12:;
        }
      }
 0172: 
+0173:     left_indexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_1, __pyx_n_s_np); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_1, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_1 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_intp); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_dtype, __pyx_t_2) < 0) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_2, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 173, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_v_left_indexer = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
+0174:     right_indexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_4) < 0) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __Pyx_PyObject_Call(__pyx_t_1, __pyx_t_7, __pyx_t_2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_9 = __Pyx_PyObject_to_MemoryviewSlice_dc_nn___pyx_t_5numpy_intp_t(__pyx_t_4, PyBUF_WRITABLE); if (unlikely(!__pyx_t_9.memview)) __PYX_ERR(0, 174, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_v_right_indexer = __pyx_t_9;
  __pyx_t_9.memview = NULL;
  __pyx_t_9.data = NULL;
 0175: 
+0176:     with nogil:
  {
      #ifdef WITH_THREAD
      PyThreadState *_save;
      Py_UNBLOCK_THREADS
      __Pyx_FastGIL_Remember();
      #endif
      /*try:*/ {
/* … */
      /*finally:*/ {
        /*normal exit:*/{
          #ifdef WITH_THREAD
          __Pyx_FastGIL_Forget();
          Py_BLOCK_THREADS
          #endif
          goto __pyx_L17;
        }
        __pyx_L17:;
      }
  }
 0177:         # exclude the NA group
+0178:         left_pos = left_count[0]
        __pyx_t_14 = 0;
        __pyx_v_left_pos = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_14)) )));
+0179:         right_pos = right_count[0]
        __pyx_t_14 = 0;
        __pyx_v_right_pos = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_14)) )));
+0180:         for i in range(1, max_groups + 1):
        __pyx_t_11 = (__pyx_v_max_groups + 1);
        __pyx_t_12 = __pyx_t_11;
        for (__pyx_t_13 = 1; __pyx_t_13 < __pyx_t_12; __pyx_t_13+=1) {
          __pyx_v_i = __pyx_t_13;
+0181:             lc = left_count[i]
          __pyx_t_14 = __pyx_v_i;
          __pyx_v_lc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_count.data) + __pyx_t_14)) )));
+0182:             rc = right_count[i]
          __pyx_t_14 = __pyx_v_i;
          __pyx_v_rc = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_count.data) + __pyx_t_14)) )));
 0183: 
+0184:             if rc == 0:
          __pyx_t_15 = ((__pyx_v_rc == 0) != 0);
          if (__pyx_t_15) {
/* … */
            goto __pyx_L20;
          }
+0185:                 for j in range(lc):
            __pyx_t_17 = __pyx_v_lc;
            __pyx_t_18 = __pyx_t_17;
            for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
              __pyx_v_j = __pyx_t_19;
+0186:                     left_indexer[position + j] = left_pos + j
              __pyx_t_14 = (__pyx_v_position + __pyx_v_j);
              *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_indexer.data) + __pyx_t_14)) )) = (__pyx_v_left_pos + __pyx_v_j);
+0187:                     right_indexer[position + j] = -1
              __pyx_t_14 = (__pyx_v_position + __pyx_v_j);
              *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_indexer.data) + __pyx_t_14)) )) = -1;
            }
+0188:                 position += lc
            __pyx_v_position = (__pyx_v_position + __pyx_v_lc);
+0189:             elif lc == 0:
          __pyx_t_15 = ((__pyx_v_lc == 0) != 0);
          if (__pyx_t_15) {
/* … */
            goto __pyx_L20;
          }
+0190:                 for j in range(rc):
            __pyx_t_17 = __pyx_v_rc;
            __pyx_t_18 = __pyx_t_17;
            for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
              __pyx_v_j = __pyx_t_19;
+0191:                     left_indexer[position + j] = -1
              __pyx_t_14 = (__pyx_v_position + __pyx_v_j);
              *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_indexer.data) + __pyx_t_14)) )) = -1;
+0192:                     right_indexer[position + j] = right_pos + j
              __pyx_t_14 = (__pyx_v_position + __pyx_v_j);
              *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_indexer.data) + __pyx_t_14)) )) = (__pyx_v_right_pos + __pyx_v_j);
            }
+0193:                 position += rc
            __pyx_v_position = (__pyx_v_position + __pyx_v_rc);
 0194:             else:
+0195:                 for j in range(lc):
          /*else*/ {
            __pyx_t_17 = __pyx_v_lc;
            __pyx_t_18 = __pyx_t_17;
            for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
              __pyx_v_j = __pyx_t_19;
+0196:                     offset = position + j * rc
              __pyx_v_offset = (__pyx_v_position + (__pyx_v_j * __pyx_v_rc));
+0197:                     for k in range(rc):
              __pyx_t_20 = __pyx_v_rc;
              __pyx_t_21 = __pyx_t_20;
              for (__pyx_t_22 = 0; __pyx_t_22 < __pyx_t_21; __pyx_t_22+=1) {
                __pyx_v_k = __pyx_t_22;
+0198:                         left_indexer[offset + k] = left_pos + j
                __pyx_t_14 = (__pyx_v_offset + __pyx_v_k);
                *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_left_indexer.data) + __pyx_t_14)) )) = (__pyx_v_left_pos + __pyx_v_j);
+0199:                         right_indexer[offset + k] = right_pos + k
                __pyx_t_14 = (__pyx_v_offset + __pyx_v_k);
                *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_right_indexer.data) + __pyx_t_14)) )) = (__pyx_v_right_pos + __pyx_v_k);
              }
            }
+0200:                 position += lc * rc
            __pyx_v_position = (__pyx_v_position + (__pyx_v_lc * __pyx_v_rc));
          }
          __pyx_L20:;
+0201:             left_pos += lc
          __pyx_v_left_pos = (__pyx_v_left_pos + __pyx_v_lc);
+0202:             right_pos += rc
          __pyx_v_right_pos = (__pyx_v_right_pos + __pyx_v_rc);
        }
 0203: 
 0204:         # Will overwrite left/right indexer with the result
+0205:         _get_result_indexer(left_sorter, left_indexer)
        __pyx_f_6pandas_5_libs_4join__get_result_indexer(__pyx_v_left_sorter, __pyx_v_left_indexer);
+0206:         _get_result_indexer(right_sorter, right_indexer)
        __pyx_f_6pandas_5_libs_4join__get_result_indexer(__pyx_v_right_sorter, __pyx_v_right_indexer);
      }
 0207: 
+0208:     return np.asarray(left_indexer), np.asarray(right_indexer)
  __Pyx_XDECREF(__pyx_r);
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_7 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_left_indexer, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_7))) {
    __pyx_t_1 = PyMethod_GET_SELF(__pyx_t_7);
    if (likely(__pyx_t_1)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_7);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_7, function);
    }
  }
  __pyx_t_4 = (__pyx_t_1) ? __Pyx_PyObject_Call2Args(__pyx_t_7, __pyx_t_1, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_7, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_asarray); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_indexer, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_intp_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_intp_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_5 = NULL;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_1))) {
    __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_1);
    if (likely(__pyx_t_5)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_1);
      __Pyx_INCREF(__pyx_t_5);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_1, function);
    }
  }
  __pyx_t_7 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_1, __pyx_t_5, __pyx_t_2) : __Pyx_PyObject_CallOneArg(__pyx_t_1, __pyx_t_2);
  __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 208, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_7);
  PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_t_7);
  __pyx_t_4 = 0;
  __pyx_t_7 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;
 0209: 
 0210: 
 0211: @cython.wraparound(False)
 0212: @cython.boundscheck(False)
+0213: cdef void _get_result_indexer(intp_t[::1] sorter, intp_t[::1] indexer) nogil:
static void __pyx_f_6pandas_5_libs_4join__get_result_indexer(__Pyx_memviewslice __pyx_v_sorter, __Pyx_memviewslice __pyx_v_indexer) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_n;
  Py_ssize_t __pyx_v_idx;
/* … */
  /* function exit code */
}
 0214:     """NOTE: overwrites indexer with the result to avoid allocating another array"""
 0215:     cdef:
 0216:         Py_ssize_t i, n, idx
 0217: 
+0218:     if len(sorter) > 0:
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_sorter); 
  __pyx_t_2 = ((__pyx_t_1 > 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
 0219:         # cython-only equivalent to
 0220:         #  `res = algos.take_nd(sorter, indexer, fill_value=-1)`
+0221:         n = indexer.shape[0]
    __pyx_v_n = (__pyx_v_indexer.shape[0]);
+0222:         for i in range(n):
    __pyx_t_3 = __pyx_v_n;
    __pyx_t_4 = __pyx_t_3;
    for (__pyx_t_5 = 0; __pyx_t_5 < __pyx_t_4; __pyx_t_5+=1) {
      __pyx_v_i = __pyx_t_5;
+0223:             idx = indexer[i]
      __pyx_t_6 = __pyx_v_i;
      __pyx_v_idx = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_indexer.data) + __pyx_t_6)) )));
+0224:             if idx == -1:
      __pyx_t_2 = ((__pyx_v_idx == -1L) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L6;
      }
+0225:                 indexer[i] = -1
        __pyx_t_6 = __pyx_v_i;
        *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_indexer.data) + __pyx_t_6)) )) = -1;
 0226:             else:
+0227:                 indexer[i] = sorter[idx]
      /*else*/ {
        __pyx_t_6 = __pyx_v_idx;
        __pyx_t_7 = __pyx_v_i;
        *((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_indexer.data) + __pyx_t_7)) )) = (*((__pyx_t_5numpy_intp_t *) ( /* dim=0 */ ((char *) (((__pyx_t_5numpy_intp_t *) __pyx_v_sorter.data) + __pyx_t_6)) )));
      }
      __pyx_L6:;
    }
 0228:     else:
 0229:         # length-0 case
+0230:         indexer[:] = -1
  /*else*/ {
    {
        __pyx_t_5numpy_intp_t __pyx_temp_scalar = -1;
        {
            Py_ssize_t __pyx_temp_extent = __pyx_v_indexer.shape[0];
            Py_ssize_t __pyx_temp_idx;
            __pyx_t_5numpy_intp_t *__pyx_temp_pointer = (__pyx_t_5numpy_intp_t *) __pyx_v_indexer.data;
            for (__pyx_temp_idx = 0; __pyx_temp_idx < __pyx_temp_extent; __pyx_temp_idx++) {
              *((__pyx_t_5numpy_intp_t *) __pyx_temp_pointer) = __pyx_temp_scalar;
              __pyx_temp_pointer += 1;
            }
        }
    }
  }
  __pyx_L3:;
 0231: 
 0232: 
+0233: def ffill_indexer(const intp_t[:] indexer) -> np.ndarray:
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_7ffill_indexer(PyObject *__pyx_self, PyObject *__pyx_arg_indexer); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_7ffill_indexer = {"ffill_indexer", (PyCFunction)__pyx_pw_6pandas_5_libs_4join_7ffill_indexer, METH_O, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_7ffill_indexer(PyObject *__pyx_self, PyObject *__pyx_arg_indexer) {
  __Pyx_memviewslice __pyx_v_indexer = { 0, 0, { 0 }, { 0 }, { 0 } };
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ffill_indexer (wrapper)", 0);
  assert(__pyx_arg_indexer); {
    __pyx_v_indexer = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_intp_t__const__(__pyx_arg_indexer, 0); if (unlikely(!__pyx_v_indexer.memview)) __PYX_ERR(0, 233, __pyx_L3_error)
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.ffill_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_6ffill_indexer(__pyx_self, __pyx_v_indexer);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_6ffill_indexer(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_indexer) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_n;
  PyArrayObject *__pyx_v_result = 0;
  __pyx_t_5numpy_intp_t __pyx_v_val;
  __pyx_t_5numpy_intp_t __pyx_v_last_obs;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("ffill_indexer", 0);
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.ffill_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __pyx_L2:;
  __PYX_XDEC_MEMVIEW(&__pyx_v_indexer, 1);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__38 = PyTuple_Pack(7, __pyx_n_s_indexer, __pyx_n_s_indexer, __pyx_n_s_i, __pyx_n_s_n, __pyx_n_s_result, __pyx_n_s_val, __pyx_n_s_last_obs); if (unlikely(!__pyx_tuple__38)) __PYX_ERR(0, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__38);
  __Pyx_GIVEREF(__pyx_tuple__38);
/* … */
  __pyx_t_3 = PyCFunction_NewEx(&__pyx_mdef_6pandas_5_libs_4join_7ffill_indexer, NULL, __pyx_n_s_pandas__libs_join); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 233, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_ffill_indexer, __pyx_t_3) < 0) __PYX_ERR(0, 233, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__39 = (PyObject*)__Pyx_PyCode_New(1, 0, 7, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__38, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_ffill_indexer, 233, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__39)) __PYX_ERR(0, 233, __pyx_L1_error)
 0234:     cdef:
+0235:         Py_ssize_t i, n = len(indexer)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_indexer); 
  __pyx_v_n = __pyx_t_1;
 0236:         ndarray[intp_t] result
 0237:         intp_t val, last_obs
 0238: 
+0239:     result = np.empty(n, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_n); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 239, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 239, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 239, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
+0240:     last_obs = -1
  __pyx_v_last_obs = -1;
 0241: 
+0242:     for i in range(n):
  __pyx_t_12 = __pyx_v_n;
  __pyx_t_13 = __pyx_t_12;
  for (__pyx_t_14 = 0; __pyx_t_14 < __pyx_t_13; __pyx_t_14+=1) {
    __pyx_v_i = __pyx_t_14;
+0243:         val = indexer[i]
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_15 < 0) {
      __pyx_t_15 += __pyx_v_indexer.shape[0];
      if (unlikely(__pyx_t_15 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_15 >= __pyx_v_indexer.shape[0])) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 243, __pyx_L1_error)
    }
    __pyx_v_val = (*((__pyx_t_5numpy_intp_t const  *) ( /* dim=0 */ (__pyx_v_indexer.data + __pyx_t_15 * __pyx_v_indexer.strides[0]) )));
+0244:         if val == -1:
    __pyx_t_16 = ((__pyx_v_val == -1L) != 0);
    if (__pyx_t_16) {
/* … */
      goto __pyx_L5;
    }
+0245:             result[i] = last_obs
      __pyx_t_15 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_15 < 0) {
        __pyx_t_15 += __pyx_pybuffernd_result.diminfo[0].shape;
        if (unlikely(__pyx_t_15 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_result.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 245, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_last_obs;
 0246:         else:
+0247:             result[i] = val
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_15 < 0) {
        __pyx_t_15 += __pyx_pybuffernd_result.diminfo[0].shape;
        if (unlikely(__pyx_t_15 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_15 >= __pyx_pybuffernd_result.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 247, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_val;
+0248:             last_obs = val
      __pyx_v_last_obs = __pyx_v_val;
    }
    __pyx_L5:;
  }
 0249: 
+0250:     return result
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __pyx_r = ((PyObject *)__pyx_v_result);
  goto __pyx_L0;
 0251: 
 0252: 
 0253: # ----------------------------------------------------------------------
 0254: # left_join_indexer, inner_join_indexer, outer_join_indexer
 0255: # ----------------------------------------------------------------------
 0256: 
 0257: # Joins on ordered, unique indices
 0258: 
 0259: # right might contain non-unique values
 0260: 
 0261: @cython.wraparound(False)
 0262: @cython.boundscheck(False)
+0263: def left_join_indexer_unique(
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_9left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique[] = "\n    Both left and right are strictly monotonic increasing.\n    ";
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_9left_join_indexer_unique = {"left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_9left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_pw_6pandas_5_libs_4join_9left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 263, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_8left_join_indexer_unique(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_8left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 263, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 263, __pyx_L1_error)
    }
    __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 263, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 263, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 263, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 263, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 263, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L94_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L94_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 263, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 263, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 263, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L102;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L100_break;
        }
        __pyx_L102:;
      }
    }
    __pyx_L100_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 263, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 263, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_3) {
/* … */
  __pyx_tuple__3 = PyTuple_Pack(1, __pyx_kp_s_No_matching_signature_found); if (unlikely(!__pyx_tuple__3)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__3);
  __Pyx_GIVEREF(__pyx_tuple__3);
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 263, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 263, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 263, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_29left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_29left_join_indexer_unique = {"__pyx_fuse_0left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_29left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_29left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_28left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_28left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_int8_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_31left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_31left_join_indexer_unique = {"__pyx_fuse_1left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_31left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_31left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_30left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_30left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_int16_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_33left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_33left_join_indexer_unique = {"__pyx_fuse_2left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_33left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_33left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_32left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_32left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_int32_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_35left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_35left_join_indexer_unique = {"__pyx_fuse_3left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_35left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_35left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_34left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_34left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_int64_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_37left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_37left_join_indexer_unique = {"__pyx_fuse_4left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_37left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_37left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_36left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_36left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_uint8_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_39left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_39left_join_indexer_unique = {"__pyx_fuse_5left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_39left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_39left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_38left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_38left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_uint16_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_41left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_41left_join_indexer_unique = {"__pyx_fuse_6left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_41left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_41left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_40left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_40left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_uint32_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_43left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_43left_join_indexer_unique = {"__pyx_fuse_7left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_43left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_43left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_42left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_42left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_45left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_45left_join_indexer_unique = {"__pyx_fuse_8left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_45left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_45left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_44left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_44left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_float32_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_47left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_47left_join_indexer_unique = {"__pyx_fuse_9left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_47left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_47left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_46left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_46left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  __pyx_t_5numpy_float64_t __pyx_v_rval;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_49left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_10__pyx_mdef_6pandas_5_libs_4join_49left_join_indexer_unique = {"__pyx_fuse_10left_join_indexer_unique", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_49left_join_indexer_unique, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_8left_join_indexer_unique};
static PyObject *__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_49left_join_indexer_unique(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer_unique (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, 1); __PYX_ERR(0, 263, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer_unique") < 0)) __PYX_ERR(0, 263, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer_unique", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 263, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 264, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 265, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_48left_join_indexer_unique(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_48left_join_indexer_unique(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_nright;
  PyArrayObject *__pyx_v_indexer = 0;
  PyObject *__pyx_v_rval = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_indexer;
  __Pyx_Buffer __pyx_pybuffer_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_10left_join_indexer_unique", 0);
  __pyx_pybuffer_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_indexer.refcount = 0;
  __pyx_pybuffernd_indexer.data = NULL;
  __pyx_pybuffernd_indexer.rcbuffer = &__pyx_pybuffer_indexer;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 263, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer_unique", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_indexer);
  __Pyx_XDECREF(__pyx_v_rval);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
  __pyx_tuple__4 = PyTuple_Pack(1, __pyx_kp_s_Function_call_with_ambiguous_arg); if (unlikely(!__pyx_tuple__4)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__4);
  __Pyx_GIVEREF(__pyx_tuple__4);
/* … */
  __pyx_tuple__40 = PyTuple_Pack(9, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_nleft, __pyx_n_s_nright, __pyx_n_s_indexer, __pyx_n_s_lval, __pyx_n_s_rval); if (unlikely(!__pyx_tuple__40)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__40);
  __Pyx_GIVEREF(__pyx_tuple__40);
/* … */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_29left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int8_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_31left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int16_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_33left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int32_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_35left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_37left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint8_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_39left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint16_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_41left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint32_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_43left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_45left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_47left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float64_t, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_10__pyx_mdef_6pandas_5_libs_4join_49left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_object, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_9left_join_indexer_unique, 0, __pyx_n_s_left_join_indexer_unique, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__41)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_left_join_indexer_unique, __pyx_t_1) < 0) __PYX_ERR(0, 263, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_codeobj__41 = (PyObject*)__Pyx_PyCode_New(2, 0, 9, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__40, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_left_join_indexer_unique, 263, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__41)) __PYX_ERR(0, 263, __pyx_L1_error)
 0264:     ndarray[numeric_object_t] left,
 0265:     ndarray[numeric_object_t] right
 0266: ):
 0267:     """
 0268:     Both left and right are strictly monotonic increasing.
 0269:     """
 0270:     cdef:
 0271:         Py_ssize_t i, j, nleft, nright
 0272:         ndarray[intp_t] indexer
 0273:         numeric_object_t lval, rval
 0274: 
+0275:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+0276:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+0277:     nleft = len(left)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 277, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
+0278:     nright = len(right)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 278, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
 0279: 
+0280:     indexer = np.empty(nleft, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_nleft); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 280, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 280, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_indexer.diminfo[0].strides = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_indexer.diminfo[0].shape = __pyx_pybuffernd_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 280, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
+0281:     while True:
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
/* … */
  while (1) {
+0282:         if i == nleft:
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_i == __pyx_v_nleft) != 0);
    if (__pyx_t_12) {
/* … */
    }
+0283:             break
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
/* … */
      goto __pyx_L4_break;
 0284: 
+0285:         if j == nright:
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
/* … */
    __pyx_t_12 = ((__pyx_v_j == __pyx_v_nright) != 0);
    if (__pyx_t_12) {
/* … */
    }
+0286:             indexer[i] = -1
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
+0287:             i += 1
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
+0288:             continue
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
/* … */
      goto __pyx_L3_continue;
 0289: 
+0290:         rval = right[j]
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
    __pyx_t_13 = __pyx_v_j;
    __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides);
    __Pyx_INCREF((PyObject*)__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_6);
    __pyx_t_6 = 0;
 0291: 
+0292:         while i < nleft - 1 and left[i] == rval:
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
/* … */
    while (1) {
      __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
      if (__pyx_t_14) {
      } else {
        __pyx_t_12 = __pyx_t_14;
        goto __pyx_L9_bool_binop_done;
      }
      __pyx_t_13 = __pyx_v_i;
      __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __pyx_t_2 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 292, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_2); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 292, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
      __pyx_t_12 = __pyx_t_14;
      __pyx_L9_bool_binop_done:;
      if (!__pyx_t_12) break;
+0293:             indexer[i] = j
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
+0294:             i += 1
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
 0295: 
+0296:         if left[i] == right[j]:
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_15 = __pyx_v_j;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides)) == (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_2 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides);
    __Pyx_INCREF((PyObject*)__pyx_t_2);
    __pyx_t_13 = __pyx_v_j;
    __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_right.diminfo[0].strides);
    __Pyx_INCREF((PyObject*)__pyx_t_6);
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_2, __pyx_t_6, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 296, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 296, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
+0297:             indexer[i] = j
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
+0298:             i += 1
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
+0299:             while i < nleft - 1 and left[i] == rval:
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_15 = __pyx_v_i;
        __pyx_t_14 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) == __pyx_v_rval) != 0);
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
/* … */
      while (1) {
        __pyx_t_14 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_14) {
        } else {
          __pyx_t_12 = __pyx_t_14;
          goto __pyx_L14_bool_binop_done;
        }
        __pyx_t_13 = __pyx_v_i;
        __pyx_t_4 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides);
        __Pyx_INCREF((PyObject*)__pyx_t_4);
        __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 299, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
        __pyx_t_14 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_14 < 0)) __PYX_ERR(0, 299, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_12 = __pyx_t_14;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_12) break;
+0300:                 indexer[i] = j
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_15 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_13 = __pyx_v_i;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = __pyx_v_j;
+0301:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
      }
+0302:             j += 1
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
+0303:         elif left[i] > rval:
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_15 = __pyx_v_i;
    __pyx_t_12 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_left.diminfo[0].strides)) > __pyx_v_rval) != 0);
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
/* … */
    __pyx_t_13 = __pyx_v_i;
    __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_left.diminfo[0].strides);
    __Pyx_INCREF((PyObject*)__pyx_t_6);
    __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_GT); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 303, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_12 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_12 < 0)) __PYX_ERR(0, 303, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    if (__pyx_t_12) {
/* … */
      goto __pyx_L11;
    }
+0304:             indexer[i] = -1
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
+0305:             j += 1
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
/* … */
      __pyx_v_j = (__pyx_v_j + 1);
 0306:         else:
+0307:             indexer[i] = -1
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_15 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_15, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
/* … */
    /*else*/ {
      __pyx_t_13 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_indexer.rcbuffer->pybuffer.buf, __pyx_t_13, __pyx_pybuffernd_indexer.diminfo[0].strides) = -1;
+0308:             i += 1
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
/* … */
      __pyx_v_i = (__pyx_v_i + 1);
    }
    __pyx_L11:;
    __pyx_L3_continue:;
  }
  __pyx_L4_break:;
+0309:     return indexer
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __Pyx_INCREF(((PyObject *)__pyx_v_indexer));
  __pyx_r = ((PyObject *)__pyx_v_indexer);
  goto __pyx_L0;
 0310: 
 0311: 
 0312: @cython.wraparound(False)
 0313: @cython.boundscheck(False)
+0314: def left_join_indexer(ndarray[numeric_object_t] left, ndarray[numeric_object_t] right):
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_11left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pandas_5_libs_4join_10left_join_indexer[] = "\n    Two-pass algorithm for monotonic indexes. Handles many-to-one merges.\n\n    Both left and right are monotonic increasing, but at least one of them\n    is non-unique (if both were unique we'd use left_join_indexer_unique).\n    ";
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_11left_join_indexer = {"left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_11left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_pw_6pandas_5_libs_4join_11left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 314, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_10left_join_indexer(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_10left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 314, __pyx_L1_error)
    }
    __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 314, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 314, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 314, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 314, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L94_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L94_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 314, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 314, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L102;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L100_break;
        }
        __pyx_L102:;
      }
    }
    __pyx_L100_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 314, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 314, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 314, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 314, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_53left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_53left_join_indexer = {"__pyx_fuse_0left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_53left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_53left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_52left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_52left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int8_t __pyx_v_lval;
  __pyx_t_5numpy_int8_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_55left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_55left_join_indexer = {"__pyx_fuse_1left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_55left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_55left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_54left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_54left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int16_t __pyx_v_lval;
  __pyx_t_5numpy_int16_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_57left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_57left_join_indexer = {"__pyx_fuse_2left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_57left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_57left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_56left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_56left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int32_t __pyx_v_lval;
  __pyx_t_5numpy_int32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_59left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_59left_join_indexer = {"__pyx_fuse_3left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_59left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_59left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_58left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_58left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int64_t __pyx_v_lval;
  __pyx_t_5numpy_int64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_61left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_61left_join_indexer = {"__pyx_fuse_4left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_61left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_61left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_60left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_60left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint8_t __pyx_v_lval;
  __pyx_t_5numpy_uint8_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_63left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_63left_join_indexer = {"__pyx_fuse_5left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_63left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_63left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_62left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_62left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint16_t __pyx_v_lval;
  __pyx_t_5numpy_uint16_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_65left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_65left_join_indexer = {"__pyx_fuse_6left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_65left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_65left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_64left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_64left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint32_t __pyx_v_lval;
  __pyx_t_5numpy_uint32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_67left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_67left_join_indexer = {"__pyx_fuse_7left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_67left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_67left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_66left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_66left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint64_t __pyx_v_lval;
  __pyx_t_5numpy_uint64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_69left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_69left_join_indexer = {"__pyx_fuse_8left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_69left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_69left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_68left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_68left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float32_t __pyx_v_lval;
  __pyx_t_5numpy_float32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_71left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_71left_join_indexer = {"__pyx_fuse_9left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_71left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_71left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_70left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_70left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float64_t __pyx_v_lval;
  __pyx_t_5numpy_float64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_73left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_10__pyx_mdef_6pandas_5_libs_4join_73left_join_indexer = {"__pyx_fuse_10left_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_73left_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_10left_join_indexer};
static PyObject *__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_73left_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("left_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 314, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "left_join_indexer") < 0)) __PYX_ERR(0, 314, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("left_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 314, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 314, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_72left_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_72left_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  PyObject *__pyx_v_lval = 0;
  PyObject *__pyx_v_rval = 0;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_10left_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 314, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.left_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_lval);
  __Pyx_XDECREF(__pyx_v_rval);
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__42 = PyTuple_Pack(13, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_nright, __pyx_n_s_nleft, __pyx_n_s_count, __pyx_n_s_lval, __pyx_n_s_rval, __pyx_n_s_lindexer, __pyx_n_s_rindexer, __pyx_n_s_result); if (unlikely(!__pyx_tuple__42)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__42);
  __Pyx_GIVEREF(__pyx_tuple__42);
/* … */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_53left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int8_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_55left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int16_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_57left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int32_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_59left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_61left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint8_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_63left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint16_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_65left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint32_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_67left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_69left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float32_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_71left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float64_t, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_10__pyx_mdef_6pandas_5_libs_4join_73left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_object, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_11left_join_indexer, 0, __pyx_n_s_left_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__43)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_left_join_indexer, __pyx_t_3) < 0) __PYX_ERR(0, 314, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__43 = (PyObject*)__Pyx_PyCode_New(2, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__42, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_left_join_indexer, 314, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__43)) __PYX_ERR(0, 314, __pyx_L1_error)
 0315:     """
 0316:     Two-pass algorithm for monotonic indexes. Handles many-to-one merges.
 0317: 
 0318:     Both left and right are monotonic increasing, but at least one of them
 0319:     is non-unique (if both were unique we'd use left_join_indexer_unique).
 0320:     """
 0321:     cdef:
 0322:         Py_ssize_t i, j, k, nright, nleft, count
 0323:         numeric_object_t lval, rval
 0324:         ndarray[intp_t] lindexer, rindexer
 0325:         ndarray[numeric_object_t] result
 0326: 
+0327:     nleft = len(left)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 327, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
+0328:     nright = len(right)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 328, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
 0329: 
 0330:     # First pass is to find the size 'count' of our output indexers.
+0331:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+0332:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+0333:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+0334:     if nleft > 0:
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
+0335:         while i < nleft:
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
+0336:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0337:                 count += nleft - i
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
+0338:                 break
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
 0339: 
+0340:             lval = left[i]
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_3);
      __pyx_t_3 = 0;
+0341:             rval = right[j]
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_3);
      __pyx_t_3 = 0;
 0342: 
+0343:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 343, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 343, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
 0344:                 # This block is identical across
 0345:                 #  left_join_indexer, inner_join_indexer, outer_join_indexer
+0346:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0347:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
+0348:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L10_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_3);
          __pyx_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 348, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = __pyx_t_5;
          __pyx_L10_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L9;
          }
+0349:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 0350:                     else:
+0351:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+0352:                         if left[i] != rval:
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_6);
            __pyx_t_3 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 352, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 352, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L9:;
+0353:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+0354:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L8;
        }
+0355:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+0356:                     if lval != right[j]:
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_3);
          __pyx_t_6 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 356, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 356, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (__pyx_t_2) {
/* … */
          }
+0357:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 0358:                 else:
 0359:                     # end of the road
+0360:                     break
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L8:;
+0361:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
/* … */
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 361, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 361, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L7;
      }
+0362:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0363:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 0364:             else:
+0365:                 j += 1
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L7:;
    }
    __pyx_L5_break:;
 0366: 
 0367:     # do it again now that result size is known
 0368: 
+0369:     lindexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 369, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 369, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 369, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+0370:     rindexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 370, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 370, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 370, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
+0371:     result = np.empty(count, dtype=left.dtype)
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 371, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 371, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 371, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
 0372: 
+0373:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+0374:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+0375:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+0376:     if nleft > 0:
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_2) {
/* … */
  }
+0377:         while i < nleft:
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
/* … */
    while (1) {
      __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
      if (!__pyx_t_2) break;
+0378:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0379:                 while i < nleft:
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
+0380:                     lindexer[count] = i
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_4 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+0381:                     rindexer[count] = -1
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_4 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
+0382:                     result[count] = left[i]
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_16 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_4 = __pyx_v_i;
          __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_6);
          __pyx_t_4 = __pyx_v_count;
          __pyx_t_16 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
          __Pyx_GOTREF(*__pyx_t_16);
          __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(*__pyx_t_16);
          *__pyx_t_16 = __pyx_t_6;
          __Pyx_GIVEREF(*__pyx_t_16);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0383:                     i += 1
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
+0384:                     count += 1
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
        }
+0385:                 break
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
/* … */
        goto __pyx_L16_break;
 0386: 
+0387:             lval = left[i]
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_6);
      __pyx_t_6 = 0;
+0388:             rval = right[j]
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_6);
      __pyx_t_6 = 0;
 0389: 
+0390:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 390, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 390, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
+0391:                 lindexer[count] = i
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+0392:                 rindexer[count] = j
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+0393:                 result[count] = lval
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        __pyx_t_16 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_16);
        __Pyx_INCREF(__pyx_v_lval); __Pyx_DECREF(*__pyx_t_16);
        *__pyx_t_16 = __pyx_v_lval;
        __Pyx_GIVEREF(*__pyx_t_16);
+0394:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0395:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
+0396:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L23_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_6);
          __pyx_t_8 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 396, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 396, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __pyx_t_5;
          __pyx_L23_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L22;
          }
+0397:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 0398:                     else:
+0399:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+0400:                         if left[i] != rval:
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_8);
            __pyx_t_6 = PyObject_RichCompare(__pyx_t_8, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 400, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 400, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L22:;
+0401:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+0402:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L21;
        }
+0403:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+0404:                     if lval != right[j]:
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_6);
          __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 404, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 404, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (__pyx_t_2) {
/* … */
          }
+0405:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 0406:                 else:
 0407:                     # end of the road
+0408:                     break
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
/* … */
        /*else*/ {
          goto __pyx_L16_break;
        }
        __pyx_L21:;
+0409:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
/* … */
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 409, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 409, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L20;
      }
 0410:                 # i.e. lval not in right; we keep for left_join_indexer
+0411:                 lindexer[count] = i
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+0412:                 rindexer[count] = -1
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
+0413:                 result[count] = lval
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        __pyx_t_16 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_16);
        __Pyx_INCREF(__pyx_v_lval); __Pyx_DECREF(*__pyx_t_16);
        *__pyx_t_16 = __pyx_v_lval;
        __Pyx_GIVEREF(*__pyx_t_16);
+0414:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0415:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 0416:             else:
 0417:                 # i.e. rval not in left; we discard for left_join_indexer
+0418:                 j += 1
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L20:;
    }
    __pyx_L16_break:;
 0419: 
+0420:     return result, lindexer, rindexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 420, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_8, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
 0421: 
 0422: 
 0423: @cython.wraparound(False)
 0424: @cython.boundscheck(False)
+0425: def inner_join_indexer(ndarray[numeric_object_t] left, ndarray[numeric_object_t] right):
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_13inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer[] = "\n    Two-pass algorithm for monotonic indexes. Handles many-to-one merges.\n\n    Both left and right are monotonic increasing but not necessarily unique.\n    ";
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_13inner_join_indexer = {"inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_13inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_pw_6pandas_5_libs_4join_13inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 425, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_12inner_join_indexer(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_12inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 425, __pyx_L1_error)
    }
    __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 425, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 425, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 425, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 425, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 425, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L94_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L94_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 425, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 425, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 425, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L102;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L100_break;
        }
        __pyx_L102:;
      }
    }
    __pyx_L100_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 425, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 425, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 425, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 425, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_77inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_77inner_join_indexer = {"__pyx_fuse_0inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_77inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_77inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_76inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_76inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int8_t __pyx_v_lval;
  __pyx_t_5numpy_int8_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_79inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_79inner_join_indexer = {"__pyx_fuse_1inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_79inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_79inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_78inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_78inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int16_t __pyx_v_lval;
  __pyx_t_5numpy_int16_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_81inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_81inner_join_indexer = {"__pyx_fuse_2inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_81inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_81inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_80inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_80inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int32_t __pyx_v_lval;
  __pyx_t_5numpy_int32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_83inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_83inner_join_indexer = {"__pyx_fuse_3inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_83inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_83inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_82inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_82inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int64_t __pyx_v_lval;
  __pyx_t_5numpy_int64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_85inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_85inner_join_indexer = {"__pyx_fuse_4inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_85inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_85inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_84inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_84inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint8_t __pyx_v_lval;
  __pyx_t_5numpy_uint8_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_87inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_87inner_join_indexer = {"__pyx_fuse_5inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_87inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_87inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_86inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_86inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint16_t __pyx_v_lval;
  __pyx_t_5numpy_uint16_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_89inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_89inner_join_indexer = {"__pyx_fuse_6inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_89inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_89inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_88inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_88inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint32_t __pyx_v_lval;
  __pyx_t_5numpy_uint32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_91inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_91inner_join_indexer = {"__pyx_fuse_7inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_91inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_91inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_90inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_90inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint64_t __pyx_v_lval;
  __pyx_t_5numpy_uint64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_93inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_93inner_join_indexer = {"__pyx_fuse_8inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_93inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_93inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_92inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_92inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float32_t __pyx_v_lval;
  __pyx_t_5numpy_float32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_95inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_95inner_join_indexer = {"__pyx_fuse_9inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_95inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_95inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_94inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_94inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float64_t __pyx_v_lval;
  __pyx_t_5numpy_float64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_97inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_10__pyx_mdef_6pandas_5_libs_4join_97inner_join_indexer = {"__pyx_fuse_10inner_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_97inner_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_12inner_join_indexer};
static PyObject *__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_97inner_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("inner_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 425, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "inner_join_indexer") < 0)) __PYX_ERR(0, 425, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("inner_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 425, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 425, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_96inner_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_96inner_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  PyObject *__pyx_v_lval = 0;
  PyObject *__pyx_v_rval = 0;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_10inner_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 425, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.inner_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_lval);
  __Pyx_XDECREF(__pyx_v_rval);
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__44 = PyTuple_Pack(13, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_k, __pyx_n_s_nright, __pyx_n_s_nleft, __pyx_n_s_count, __pyx_n_s_lval, __pyx_n_s_rval, __pyx_n_s_lindexer, __pyx_n_s_rindexer, __pyx_n_s_result); if (unlikely(!__pyx_tuple__44)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__44);
  __Pyx_GIVEREF(__pyx_tuple__44);
/* … */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(11); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_77inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int8_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_79inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int16_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_81inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int32_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_83inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_85inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint8_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_87inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint16_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_89inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint32_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_91inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_93inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_95inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float64_t, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_10__pyx_mdef_6pandas_5_libs_4join_97inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_object, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_13inner_join_indexer, 0, __pyx_n_s_inner_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__45)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_inner_join_indexer, __pyx_t_1) < 0) __PYX_ERR(0, 425, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_codeobj__45 = (PyObject*)__Pyx_PyCode_New(2, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__44, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_inner_join_indexer, 425, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__45)) __PYX_ERR(0, 425, __pyx_L1_error)
 0426:     """
 0427:     Two-pass algorithm for monotonic indexes. Handles many-to-one merges.
 0428: 
 0429:     Both left and right are monotonic increasing but not necessarily unique.
 0430:     """
 0431:     cdef:
 0432:         Py_ssize_t i, j, k, nright, nleft, count
 0433:         numeric_object_t lval, rval
 0434:         ndarray[intp_t] lindexer, rindexer
 0435:         ndarray[numeric_object_t] result
 0436: 
+0437:     nleft = len(left)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 437, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
+0438:     nright = len(right)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 438, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
 0439: 
 0440:     # First pass is to find the size 'count' of our output indexers.
+0441:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+0442:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+0443:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+0444:     if nleft > 0 and nright > 0:
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+0445:         while True:
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
+0446:             if i == nleft:
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0447:                 break
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
+0448:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0449:                 break
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
/* … */
        goto __pyx_L7_break;
 0450: 
+0451:             lval = left[i]
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_i;
      __pyx_t_4 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_4);
      __pyx_t_4 = 0;
+0452:             rval = right[j]
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_t_4 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_4);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_4);
      __pyx_t_4 = 0;
+0453:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_4 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 453, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 453, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
+0454:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0455:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
+0456:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L13_bool_binop_done;
          }
          __pyx_t_5 = (__pyx_v_j + 1);
          __pyx_t_4 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_4);
          __pyx_t_6 = PyObject_RichCompare(__pyx_t_4, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 456, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = __pyx_t_3;
          __pyx_L13_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L12;
          }
+0457:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 0458:                     else:
+0459:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+0460:                         if left[i] != rval:
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
/* … */
            __pyx_t_5 = __pyx_v_i;
            __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_6);
            __pyx_t_4 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_4); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 460, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_4); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 460, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L12:;
+0461:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+0462:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L11;
        }
+0463:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+0464:                     if lval != right[j]:
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_5 = __pyx_v_j;
          __pyx_t_4 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_4);
          __pyx_t_6 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_4, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 464, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 464, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (__pyx_t_2) {
/* … */
          }
+0465:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 0466:                 else:
 0467:                     # end of the road
+0468:                     break
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
/* … */
        /*else*/ {
          goto __pyx_L7_break;
        }
        __pyx_L11:;
+0469:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
/* … */
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 469, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 469, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L10;
      }
 0470:                 # i.e. lval not in right; we discard for inner_indexer
+0471:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 0472:             else:
 0473:                 # i.e. rval not in left; we discard for inner_indexer
+0474:                 j += 1
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L10:;
    }
    __pyx_L7_break:;
 0475: 
 0476:     # do it again now that result size is known
 0477: 
+0478:     lindexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_4, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 478, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 478, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 478, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+0479:     rindexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_4, __pyx_n_s_np); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_4, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 479, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 479, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 479, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
+0480:     result = np.empty(count, dtype=left.dtype)
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 480, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 480, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 480, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
 0481: 
+0482:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+0483:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+0484:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+0485:     if nleft > 0 and nright > 0:
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_3 = ((__pyx_v_nleft > 0) != 0);
  if (__pyx_t_3) {
  } else {
    __pyx_t_2 = __pyx_t_3;
    goto __pyx_L18_bool_binop_done;
  }
  __pyx_t_3 = ((__pyx_v_nright > 0) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L18_bool_binop_done:;
  if (__pyx_t_2) {
/* … */
  }
+0486:         while True:
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
/* … */
    while (1) {
+0487:             if i == nleft:
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0488:                 break
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
+0489:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0490:                 break
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
 0491: 
+0492:             lval = left[i]
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_i;
      __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_6);
      __pyx_t_6 = 0;
+0493:             rval = right[j]
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_5 = __pyx_v_j;
      __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_6);
      __pyx_t_6 = 0;
+0494:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 494, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 494, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
+0495:                 lindexer[count] = i
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_5 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+0496:                 rindexer[count] = j
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_5 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+0497:                 result[count] = lval
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_5 = __pyx_v_count;
        __pyx_t_16 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_16);
        __Pyx_INCREF(__pyx_v_lval); __Pyx_DECREF(*__pyx_t_16);
        *__pyx_t_16 = __pyx_v_lval;
        __Pyx_GIVEREF(*__pyx_t_16);
+0498:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0499:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
+0500:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
/* … */
          __pyx_t_3 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L27_bool_binop_done;
          }
          __pyx_t_5 = (__pyx_v_j + 1);
          __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_6);
          __pyx_t_8 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 500, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 500, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __pyx_t_3;
          __pyx_L27_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L26;
          }
+0501:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 0502:                     else:
+0503:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+0504:                         if left[i] != rval:
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
/* … */
            __pyx_t_5 = __pyx_v_i;
            __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_8);
            __pyx_t_6 = PyObject_RichCompare(__pyx_t_8, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 504, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 504, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L26:;
+0505:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+0506:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L25;
        }
+0507:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+0508:                     if lval != right[j]:
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_5 = __pyx_v_j;
          __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_5, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_6);
          __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 508, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 508, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (__pyx_t_2) {
/* … */
          }
+0509:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 0510:                 else:
 0511:                     # end of the road
+0512:                     break
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L25:;
+0513:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
/* … */
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 513, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 513, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L24;
      }
 0514:                 # i.e. lval not in right; we discard for inner_indexer
+0515:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 0516:             else:
 0517:                 # i.e. rval not in left; we discard for inner_indexer
+0518:                 j += 1
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
/* … */
      /*else*/ {
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L24:;
    }
    __pyx_L21_break:;
 0519: 
+0520:     return result, lindexer, rindexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 520, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_8, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
 0521: 
 0522: 
 0523: @cython.wraparound(False)
 0524: @cython.boundscheck(False)
+0525: def outer_join_indexer(ndarray[numeric_object_t] left, ndarray[numeric_object_t] right):
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_15outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static char __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer[] = "\n    Both left and right are monotonic increasing but not necessarily unique.\n    ";
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_15outer_join_indexer = {"outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_15outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_pw_6pandas_5_libs_4join_15outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 525, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_14outer_join_indexer(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_14outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 525, __pyx_L1_error)
    }
    __pyx_t_1 = PyTuple_GET_ITEM(((PyObject*)__pyx_v_args), 0);
    __Pyx_INCREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 525, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 525, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 525, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 525, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 525, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L94_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L94_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 0) < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 525, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_1 = PyList_GET_ITEM(__pyx_v_dest_sig, __pyx_v_i);
      __Pyx_INCREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 0, 0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 525, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 525, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L102;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L100_break;
        }
        __pyx_L102:;
      }
    }
    __pyx_L100_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 525, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 525, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 525, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), PyList_GET_ITEM(__pyx_v_candidates, 0)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 525, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_r = __pyx_t_6;
    __pyx_t_6 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_101outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_101outer_join_indexer = {"__pyx_fuse_0outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_101outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_101outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_100outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_100outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int8_t __pyx_v_lval;
  __pyx_t_5numpy_int8_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_103outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_103outer_join_indexer = {"__pyx_fuse_1outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_103outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_103outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_102outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_102outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int16_t __pyx_v_lval;
  __pyx_t_5numpy_int16_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_105outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_105outer_join_indexer = {"__pyx_fuse_2outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_105outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_105outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_104outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_104outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int32_t __pyx_v_lval;
  __pyx_t_5numpy_int32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_107outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_107outer_join_indexer = {"__pyx_fuse_3outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_107outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_107outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_106outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_106outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_int64_t __pyx_v_lval;
  __pyx_t_5numpy_int64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_109outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_109outer_join_indexer = {"__pyx_fuse_4outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_109outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_109outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_108outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_108outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint8_t __pyx_v_lval;
  __pyx_t_5numpy_uint8_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_111outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_111outer_join_indexer = {"__pyx_fuse_5outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_111outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_111outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_110outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_110outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint16_t __pyx_v_lval;
  __pyx_t_5numpy_uint16_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_113outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_113outer_join_indexer = {"__pyx_fuse_6outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_113outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_113outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_112outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_112outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint32_t __pyx_v_lval;
  __pyx_t_5numpy_uint32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_115outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_115outer_join_indexer = {"__pyx_fuse_7outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_115outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_115outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_114outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_114outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_uint64_t __pyx_v_lval;
  __pyx_t_5numpy_uint64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_117outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_117outer_join_indexer = {"__pyx_fuse_8outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_117outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_117outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_116outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_116outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float32_t __pyx_v_lval;
  __pyx_t_5numpy_float32_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_119outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_119outer_join_indexer = {"__pyx_fuse_9outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_119outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_119outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_118outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_118outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  __pyx_t_5numpy_float64_t __pyx_v_lval;
  __pyx_t_5numpy_float64_t __pyx_v_rval;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_121outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_10__pyx_mdef_6pandas_5_libs_4join_121outer_join_indexer = {"__pyx_fuse_10outer_join_indexer", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_121outer_join_indexer, METH_VARARGS|METH_KEYWORDS, __pyx_doc_6pandas_5_libs_4join_14outer_join_indexer};
static PyObject *__pyx_fuse_10__pyx_pw_6pandas_5_libs_4join_121outer_join_indexer(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyArrayObject *__pyx_v_left = 0;
  PyArrayObject *__pyx_v_right = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("outer_join_indexer (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left,&__pyx_n_s_right,0};
    PyObject* values[2] = {0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, 1); __PYX_ERR(0, 525, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "outer_join_indexer") < 0)) __PYX_ERR(0, 525, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 2) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
    }
    __pyx_v_left = ((PyArrayObject *)values[0]);
    __pyx_v_right = ((PyArrayObject *)values[1]);
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("outer_join_indexer", 1, 2, 2, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 525, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_left), __pyx_ptype_5numpy_ndarray, 1, "left", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  if (unlikely(!__Pyx_ArgTypeTest(((PyObject *)__pyx_v_right), __pyx_ptype_5numpy_ndarray, 1, "right", 0))) __PYX_ERR(0, 525, __pyx_L1_error)
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_120outer_join_indexer(__pyx_self, __pyx_v_left, __pyx_v_right);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  goto __pyx_L0;
  __pyx_L1_error:;
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_120outer_join_indexer(CYTHON_UNUSED PyObject *__pyx_self, PyArrayObject *__pyx_v_left, PyArrayObject *__pyx_v_right) {
  Py_ssize_t __pyx_v_i;
  Py_ssize_t __pyx_v_j;
  Py_ssize_t __pyx_v_nright;
  Py_ssize_t __pyx_v_nleft;
  Py_ssize_t __pyx_v_count;
  PyObject *__pyx_v_lval = 0;
  PyObject *__pyx_v_rval = 0;
  PyArrayObject *__pyx_v_lindexer = 0;
  PyArrayObject *__pyx_v_rindexer = 0;
  PyArrayObject *__pyx_v_result = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left;
  __Pyx_Buffer __pyx_pybuffer_left;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_lindexer;
  __Pyx_Buffer __pyx_pybuffer_lindexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_result;
  __Pyx_Buffer __pyx_pybuffer_result;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right;
  __Pyx_Buffer __pyx_pybuffer_right;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_rindexer;
  __Pyx_Buffer __pyx_pybuffer_rindexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_10outer_join_indexer", 0);
  __pyx_pybuffer_lindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_lindexer.refcount = 0;
  __pyx_pybuffernd_lindexer.data = NULL;
  __pyx_pybuffernd_lindexer.rcbuffer = &__pyx_pybuffer_lindexer;
  __pyx_pybuffer_rindexer.pybuffer.buf = NULL;
  __pyx_pybuffer_rindexer.refcount = 0;
  __pyx_pybuffernd_rindexer.data = NULL;
  __pyx_pybuffernd_rindexer.rcbuffer = &__pyx_pybuffer_rindexer;
  __pyx_pybuffer_result.pybuffer.buf = NULL;
  __pyx_pybuffer_result.refcount = 0;
  __pyx_pybuffernd_result.data = NULL;
  __pyx_pybuffernd_result.rcbuffer = &__pyx_pybuffer_result;
  __pyx_pybuffer_left.pybuffer.buf = NULL;
  __pyx_pybuffer_left.refcount = 0;
  __pyx_pybuffernd_left.data = NULL;
  __pyx_pybuffernd_left.rcbuffer = &__pyx_pybuffer_left;
  __pyx_pybuffer_right.pybuffer.buf = NULL;
  __pyx_pybuffer_right.refcount = 0;
  __pyx_pybuffernd_right.data = NULL;
  __pyx_pybuffernd_right.rcbuffer = &__pyx_pybuffer_right;
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left.rcbuffer->pybuffer, (PyObject*)__pyx_v_left, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_left.diminfo[0].strides = __pyx_pybuffernd_left.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left.diminfo[0].shape = __pyx_pybuffernd_left.rcbuffer->pybuffer.shape[0];
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right.rcbuffer->pybuffer, (PyObject*)__pyx_v_right, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) __PYX_ERR(0, 525, __pyx_L1_error)
  }
  __pyx_pybuffernd_right.diminfo[0].strides = __pyx_pybuffernd_right.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right.diminfo[0].shape = __pyx_pybuffernd_right.rcbuffer->pybuffer.shape[0];
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.outer_join_indexer", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF(__pyx_v_lval);
  __Pyx_XDECREF(__pyx_v_rval);
  __Pyx_XDECREF((PyObject *)__pyx_v_lindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_rindexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_result);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_tuple__46 = PyTuple_Pack(12, __pyx_n_s_left, __pyx_n_s_right, __pyx_n_s_i, __pyx_n_s_j, __pyx_n_s_nright, __pyx_n_s_nleft, __pyx_n_s_count, __pyx_n_s_lval, __pyx_n_s_rval, __pyx_n_s_lindexer, __pyx_n_s_rindexer, __pyx_n_s_result); if (unlikely(!__pyx_tuple__46)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__46);
  __Pyx_GIVEREF(__pyx_tuple__46);
/* … */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(11); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_101outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int8_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_103outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int16_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_105outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int32_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_107outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_109outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint8_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_111outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint16_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_113outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint32_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_115outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_117outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float32_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_119outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float64_t, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_10__pyx_mdef_6pandas_5_libs_4join_121outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_object, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_15outer_join_indexer, 0, __pyx_n_s_outer_join_indexer, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__47)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_empty_tuple);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_outer_join_indexer, __pyx_t_3) < 0) __PYX_ERR(0, 525, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__47 = (PyObject*)__Pyx_PyCode_New(2, 0, 12, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__46, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_outer_join_indexer, 525, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__47)) __PYX_ERR(0, 525, __pyx_L1_error)
 0526:     """
 0527:     Both left and right are monotonic increasing but not necessarily unique.
 0528:     """
 0529:     cdef:
 0530:         Py_ssize_t i, j, nright, nleft, count
 0531:         numeric_object_t lval, rval
 0532:         ndarray[intp_t] lindexer, rindexer
 0533:         ndarray[numeric_object_t] result
 0534: 
+0535:     nleft = len(left)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_left)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 535, __pyx_L1_error)
  __pyx_v_nleft = __pyx_t_1;
+0536:     nright = len(right)
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
/* … */
  __pyx_t_1 = PyObject_Length(((PyObject *)__pyx_v_right)); if (unlikely(__pyx_t_1 == ((Py_ssize_t)-1))) __PYX_ERR(0, 536, __pyx_L1_error)
  __pyx_v_nright = __pyx_t_1;
 0537: 
 0538:     # First pass is to find the size 'count' of our output indexers.
 0539:     # count will be length of left plus the number of elements of right not in
 0540:     # left (counting duplicates)
+0541:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+0542:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+0543:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+0544:     if nleft == 0:
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+0545:         count = nright
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
/* … */
    __pyx_v_count = __pyx_v_nright;
+0546:     elif nright == 0:
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L3;
  }
+0547:         count = nleft
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
/* … */
    __pyx_v_count = __pyx_v_nleft;
 0548:     else:
+0549:         while True:
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
+0550:             if i == nleft:
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0551:                 count += nright - j
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nright - __pyx_v_j));
+0552:                 break
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
+0553:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0554:                 count += nleft - i
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
/* … */
        __pyx_v_count = (__pyx_v_count + (__pyx_v_nleft - __pyx_v_i));
+0555:                 break
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
/* … */
        goto __pyx_L5_break;
 0556: 
+0557:             lval = left[i]
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_3);
      __pyx_t_3 = 0;
+0558:             rval = right[j]
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_3);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_3);
      __pyx_t_3 = 0;
+0559:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_3 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 559, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 559, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
+0560:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0561:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
+0562:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L11_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_3);
          __pyx_t_6 = PyObject_RichCompare(__pyx_t_3, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 562, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 562, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = __pyx_t_5;
          __pyx_L11_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L10;
          }
+0563:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 0564:                     else:
+0565:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+0566:                         if left[i] != rval:
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_6);
            __pyx_t_3 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_3); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 566, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_3); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 566, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L10:;
+0567:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+0568:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L9;
        }
+0569:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+0570:                     if lval != right[j]:
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_3 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_3);
          __pyx_t_6 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_3, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 570, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          if (__pyx_t_2) {
/* … */
          }
+0571:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 0572:                 else:
 0573:                     # end of the road
+0574:                     break
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
/* … */
        /*else*/ {
          goto __pyx_L5_break;
        }
        __pyx_L9:;
+0575:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
/* … */
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 575, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 575, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L8;
      }
+0576:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0577:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 0578:             else:
+0579:                 count += 1
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
      /*else*/ {
        __pyx_v_count = (__pyx_v_count + 1);
+0580:                 j += 1
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L8:;
    }
    __pyx_L5_break:;
  }
  __pyx_L3:;
 0581: 
+0582:     lindexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_7, __pyx_t_6); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 582, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 582, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_lindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_lindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_lindexer.diminfo[0].strides = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_lindexer.diminfo[0].shape = __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 582, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_lindexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+0583:     rindexer = np.empty(count, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 583, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 583, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_rindexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_rindexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_rindexer.diminfo[0].strides = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_rindexer.diminfo[0].shape = __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 583, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_rindexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
+0584:     result = np.empty(count, dtype=left.dtype)
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_int64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint8_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint16_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_uint64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float32_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_nn___pyx_t_5numpy_float64_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_empty); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_count); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_8);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_8);
  __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_left), __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  if (PyDict_SetItem(__pyx_t_8, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_9, __pyx_t_7, __pyx_t_8); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 584, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 584, __pyx_L1_error)
  __pyx_t_15 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_result.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_t_15, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_result.rcbuffer->pybuffer, (PyObject*)__pyx_v_result, &__Pyx_TypeInfo_object, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_result.diminfo[0].strides = __pyx_pybuffernd_result.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_result.diminfo[0].shape = __pyx_pybuffernd_result.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 584, __pyx_L1_error)
  }
  __pyx_t_15 = 0;
  __pyx_v_result = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
 0585: 
 0586:     # do it again, but populate the indexers / result
 0587: 
+0588:     i = 0
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
/* … */
  __pyx_v_i = 0;
+0589:     j = 0
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
/* … */
  __pyx_v_j = 0;
+0590:     count = 0
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
/* … */
  __pyx_v_count = 0;
+0591:     if nleft == 0:
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nleft == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
+0592:         for j in range(nright):
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nright;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_j = __pyx_t_17;
+0593:             lindexer[j] = -1
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_4 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
+0594:             rindexer[j] = j
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_3 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
      __pyx_t_4 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+0595:             result[j] = right[j]
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_t_18 = __pyx_v_j;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
    }
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __pyx_t_4 = __pyx_v_j;
      __pyx_t_18 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
      __Pyx_GOTREF(*__pyx_t_18);
      __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(*__pyx_t_18);
      *__pyx_t_18 = __pyx_t_6;
      __Pyx_GIVEREF(*__pyx_t_18);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
+0596:     elif nright == 0:
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
/* … */
  __pyx_t_2 = ((__pyx_v_nright == 0) != 0);
  if (__pyx_t_2) {
/* … */
    goto __pyx_L15;
  }
+0597:         for i in range(nleft):
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
/* … */
    __pyx_t_1 = __pyx_v_nleft;
    __pyx_t_16 = __pyx_t_1;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
+0598:             lindexer[i] = i
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
      __pyx_t_4 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+0599:             rindexer[i] = -1
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_3 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
      __pyx_t_4 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
+0600:             result[i] = left[i]
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_t_18 = __pyx_v_i;
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
    }
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __pyx_t_4 = __pyx_v_i;
      __pyx_t_18 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
      __Pyx_GOTREF(*__pyx_t_18);
      __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(*__pyx_t_18);
      *__pyx_t_18 = __pyx_t_6;
      __Pyx_GIVEREF(*__pyx_t_18);
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    }
 0601:     else:
+0602:         while True:
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
/* … */
  /*else*/ {
    while (1) {
+0603:             if i == nleft:
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_i == __pyx_v_nleft) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0604:                 while j < nright:
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_j < __pyx_v_nright) != 0);
          if (!__pyx_t_2) break;
+0605:                     lindexer[count] = -1
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_4 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
+0606:                     rindexer[count] = j
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
          __pyx_t_4 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+0607:                     result[count] = right[j]
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_6);
          __pyx_t_4 = __pyx_v_count;
          __pyx_t_18 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
          __Pyx_GOTREF(*__pyx_t_18);
          __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(*__pyx_t_18);
          *__pyx_t_18 = __pyx_t_6;
          __Pyx_GIVEREF(*__pyx_t_18);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0608:                     count += 1
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
+0609:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
        }
+0610:                 break
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
+0611:             if j == nright:
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_j == __pyx_v_nright) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0612:                 while i < nleft:
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
/* … */
        while (1) {
          __pyx_t_2 = ((__pyx_v_i < __pyx_v_nleft) != 0);
          if (!__pyx_t_2) break;
+0613:                     lindexer[count] = i
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
          __pyx_t_4 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+0614:                     rindexer[count] = -1
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_3 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
          __pyx_t_4 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
+0615:                     result[count] = left[i]
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_3 = __pyx_v_i;
          __pyx_t_18 = __pyx_v_count;
          *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_result.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
          __pyx_t_4 = __pyx_v_i;
          __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_6);
          __pyx_t_4 = __pyx_v_count;
          __pyx_t_18 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
          __Pyx_GOTREF(*__pyx_t_18);
          __Pyx_INCREF(__pyx_t_6); __Pyx_DECREF(*__pyx_t_18);
          *__pyx_t_18 = __pyx_t_6;
          __Pyx_GIVEREF(*__pyx_t_18);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
+0616:                     count += 1
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
/* … */
          __pyx_v_count = (__pyx_v_count + 1);
+0617:                     i += 1
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
/* … */
          __pyx_v_i = (__pyx_v_i + 1);
        }
+0618:                 break
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
/* … */
        goto __pyx_L21_break;
 0619: 
+0620:             lval = left[i]
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_i;
      __pyx_v_lval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_i;
      __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_lval, __pyx_t_6);
      __pyx_t_6 = 0;
+0621:             rval = right[j]
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_3 = __pyx_v_j;
      __pyx_v_rval = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides));
/* … */
      __pyx_t_4 = __pyx_v_j;
      __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
      __Pyx_INCREF((PyObject*)__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_rval, __pyx_t_6);
      __pyx_t_6 = 0;
 0622: 
+0623:             if lval == rval:
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval == __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_6 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 623, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 623, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
+0624:                 lindexer[count] = i
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+0625:                 rindexer[count] = j
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+0626:                 result[count] = lval
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        __pyx_t_18 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_18);
        __Pyx_INCREF(__pyx_v_lval); __Pyx_DECREF(*__pyx_t_18);
        *__pyx_t_18 = __pyx_v_lval;
        __Pyx_GIVEREF(*__pyx_t_18);
+0627:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0628:                 if i < nleft - 1:
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_i < (__pyx_v_nleft - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
+0629:                     if j < nright - 1 and right[j + 1] == rval:
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_4 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_4) {
          } else {
            __pyx_t_2 = __pyx_t_4;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_3 = (__pyx_v_j + 1);
          __pyx_t_4 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides)) == __pyx_v_rval) != 0);
          __pyx_t_2 = __pyx_t_4;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
/* … */
          __pyx_t_5 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
          if (__pyx_t_5) {
          } else {
            __pyx_t_2 = __pyx_t_5;
            goto __pyx_L31_bool_binop_done;
          }
          __pyx_t_4 = (__pyx_v_j + 1);
          __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_6);
          __pyx_t_8 = PyObject_RichCompare(__pyx_t_6, __pyx_v_rval, Py_EQ); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 629, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_5 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_5 < 0)) __PYX_ERR(0, 629, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          __pyx_t_2 = __pyx_t_5;
          __pyx_L31_bool_binop_done:;
          if (__pyx_t_2) {
/* … */
            goto __pyx_L30;
          }
+0630:                         j += 1
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
/* … */
            __pyx_v_j = (__pyx_v_j + 1);
 0631:                     else:
+0632:                         i += 1
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
          /*else*/ {
            __pyx_v_i = (__pyx_v_i + 1);
+0633:                         if left[i] != rval:
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_3 = __pyx_v_i;
            __pyx_t_2 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_left.diminfo[0].strides)) != __pyx_v_rval) != 0);
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
/* … */
            __pyx_t_4 = __pyx_v_i;
            __pyx_t_8 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_left.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_left.diminfo[0].strides);
            __Pyx_INCREF((PyObject*)__pyx_t_8);
            __pyx_t_6 = PyObject_RichCompare(__pyx_t_8, __pyx_v_rval, Py_NE); __Pyx_XGOTREF(__pyx_t_6); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 633, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
            __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_6); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 633, __pyx_L1_error)
            __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
            if (__pyx_t_2) {
/* … */
            }
          }
          __pyx_L30:;
+0634:                             j += 1
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
/* … */
              __pyx_v_j = (__pyx_v_j + 1);
+0635:                 elif j < nright - 1:
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
/* … */
        __pyx_t_2 = ((__pyx_v_j < (__pyx_v_nright - 1)) != 0);
        if (__pyx_t_2) {
/* … */
          goto __pyx_L29;
        }
+0636:                     j += 1
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
/* … */
          __pyx_v_j = (__pyx_v_j + 1);
+0637:                     if lval != right[j]:
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_3 = __pyx_v_j;
          __pyx_t_2 = ((__pyx_v_lval != (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_right.diminfo[0].strides))) != 0);
          if (__pyx_t_2) {
/* … */
          }
/* … */
          __pyx_t_4 = __pyx_v_j;
          __pyx_t_6 = (PyObject *) *__Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_right.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_right.diminfo[0].strides);
          __Pyx_INCREF((PyObject*)__pyx_t_6);
          __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_t_6, Py_NE); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 637, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 637, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
          if (__pyx_t_2) {
/* … */
          }
+0638:                         i += 1
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
/* … */
            __pyx_v_i = (__pyx_v_i + 1);
 0639:                 else:
 0640:                     # end of the road
+0641:                     break
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
/* … */
        /*else*/ {
          goto __pyx_L21_break;
        }
        __pyx_L29:;
+0642:             elif lval < rval:
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_2 = ((__pyx_v_lval < __pyx_v_rval) != 0);
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
/* … */
      __pyx_t_8 = PyObject_RichCompare(__pyx_v_lval, __pyx_v_rval, Py_LT); __Pyx_XGOTREF(__pyx_t_8); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 642, __pyx_L1_error)
      __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_8); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 642, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      if (__pyx_t_2) {
/* … */
        goto __pyx_L28;
      }
 0643:                 # i.e. lval not in right; we keep for outer_join_indexer
+0644:                 lindexer[count] = i
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = __pyx_v_i;
+0645:                 rindexer[count] = -1
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = -1;
+0646:                 result[count] = lval
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_lval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        __pyx_t_18 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_18);
        __Pyx_INCREF(__pyx_v_lval); __Pyx_DECREF(*__pyx_t_18);
        *__pyx_t_18 = __pyx_v_lval;
        __Pyx_GIVEREF(*__pyx_t_18);
+0647:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0648:                 i += 1
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
/* … */
        __pyx_v_i = (__pyx_v_i + 1);
 0649:             else:
 0650:                 # i.e. rval not in left; we keep for outer_join_indexer
+0651:                 lindexer[count] = -1
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
/* … */
      /*else*/ {
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_lindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_lindexer.diminfo[0].strides) = -1;
+0652:                 rindexer[count] = j
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
/* … */
        __pyx_t_4 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_rindexer.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_rindexer.diminfo[0].strides) = __pyx_v_j;
+0653:                 result[count] = rval
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_int64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint8_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint16_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_uint64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float32_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_3 = __pyx_v_count;
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_float64_t *, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_3, __pyx_pybuffernd_result.diminfo[0].strides) = __pyx_v_rval;
/* … */
        __pyx_t_4 = __pyx_v_count;
        __pyx_t_18 = __Pyx_BufPtrStrided1d(PyObject **, __pyx_pybuffernd_result.rcbuffer->pybuffer.buf, __pyx_t_4, __pyx_pybuffernd_result.diminfo[0].strides);
        __Pyx_GOTREF(*__pyx_t_18);
        __Pyx_INCREF(__pyx_v_rval); __Pyx_DECREF(*__pyx_t_18);
        *__pyx_t_18 = __pyx_v_rval;
        __Pyx_GIVEREF(*__pyx_t_18);
+0654:                 count += 1
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
/* … */
        __pyx_v_count = (__pyx_v_count + 1);
+0655:                 j += 1
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
/* … */
        __pyx_v_j = (__pyx_v_j + 1);
      }
      __pyx_L28:;
    }
    __pyx_L21_break:;
  }
  __pyx_L15:;
 0656: 
+0657:     return result, lindexer, rindexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(3); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_5, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(3); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 657, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_result));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_result));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_result));
  __Pyx_INCREF(((PyObject *)__pyx_v_lindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_lindexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_lindexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_rindexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_rindexer));
  PyTuple_SET_ITEM(__pyx_t_8, 2, ((PyObject *)__pyx_v_rindexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
 0658: 
 0659: 
 0660: # ----------------------------------------------------------------------
 0661: # asof_join_by
 0662: # ----------------------------------------------------------------------
 0663: 
 0664: from pandas._libs.hashtable cimport (
 0665:     HashTable,
 0666:     Int64HashTable,
 0667:     PyObjectHashTable,
 0668:     UInt64HashTable,
 0669: )
 0670: 
 0671: ctypedef fused by_t:
 0672:     object
 0673:     int64_t
 0674:     uint64_t
 0675: 
 0676: 
+0677: def asof_join_backward_on_X_by_Y(numeric_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y = {"asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_16asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_16asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 677, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 677, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 677, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 677, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 677, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 677, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 677, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
  __pyx_t_3 = ((2 < __pyx_t_5) != 0);
  if (__pyx_t_3) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 677, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  __pyx_t_2 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L94_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 677, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_by_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_2;
  __pyx_L94_bool_binop_done:;
  if (__pyx_t_3) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 677, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_by_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 677, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 677, __pyx_L1_error)
  }
  __pyx_L93:;
  while (1) {
    __pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
        __pyx_t_1 = 0;
        goto __pyx_L99;
      }
      __pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
        __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
          __pyx_t_1 = 0;
          goto __pyx_L100;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
        }
        __pyx_L100:;
        goto __pyx_L99;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
      }
      __pyx_L99:;
      __pyx_v_itemsize = -1L;
      __pyx_t_3 = (__pyx_v_dtype != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L103_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 677, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L107_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          break;
          case 'f':
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L111_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L111_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L115_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L115_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L119_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L119_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
    goto __pyx_L97_break;
  }
  __pyx_L97_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 677, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 677, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L127;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L125_break;
        }
        __pyx_L127:;
      }
    }
    __pyx_L125_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 677, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 677, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 677, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 677, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_13 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 677, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_13;
    __pyx_t_13 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_436__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y = {"__pyx_fuse_0_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults30 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_124asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_124asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_438__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y = {"__pyx_fuse_0_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults31 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_126asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_126asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_440__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults32, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults32, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults32, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults32, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y = {"__pyx_fuse_0_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults32 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults32, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_128asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_128asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_442__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults33, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults33, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults33, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults33, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y = {"__pyx_fuse_1_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults33 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults33, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_130asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_130asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_444__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults34, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults34, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults34, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults34, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y = {"__pyx_fuse_1_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults34 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults34, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_132asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_132asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_446__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y = {"__pyx_fuse_1_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults35 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_134asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_134asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_448__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y = {"__pyx_fuse_2_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults36 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_136asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_136asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_450__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y = {"__pyx_fuse_2_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults37 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_138asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_138asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_452__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y = {"__pyx_fuse_2_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults38 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_140asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_140asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_454__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y = {"__pyx_fuse_3_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults39 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_142asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_142asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_456__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y = {"__pyx_fuse_3_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults40 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_144asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_144asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_458__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y = {"__pyx_fuse_3_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults41 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_146asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_146asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_460__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y = {"__pyx_fuse_4_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults42 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_148asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_148asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_462__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y = {"__pyx_fuse_4_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults43 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_150asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_150asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_464__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y = {"__pyx_fuse_4_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults44 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_152asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_152asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_466__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y = {"__pyx_fuse_5_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults45 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_154asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_154asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_468__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y = {"__pyx_fuse_5_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults46 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_156asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_156asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_470__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y = {"__pyx_fuse_5_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults47 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_158asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_158asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_472__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_161asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_161asof_join_backward_on_X_by_Y = {"__pyx_fuse_6_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_161asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_161asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults48 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_160asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_160asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_474__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_163asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_163asof_join_backward_on_X_by_Y = {"__pyx_fuse_6_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_163asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_163asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults49 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_162asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_162asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_476__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_165asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_165asof_join_backward_on_X_by_Y = {"__pyx_fuse_6_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_165asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_165asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults50 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_164asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_164asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_478__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_167asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_167asof_join_backward_on_X_by_Y = {"__pyx_fuse_7_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_167asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_167asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults51 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_166asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_166asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_480__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_169asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_169asof_join_backward_on_X_by_Y = {"__pyx_fuse_7_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_169asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_169asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults52 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_168asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_168asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_482__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_171asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_171asof_join_backward_on_X_by_Y = {"__pyx_fuse_7_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_171asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_171asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults53 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_170asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_170asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_484__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_173asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_173asof_join_backward_on_X_by_Y = {"__pyx_fuse_8_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_173asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_173asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults54 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_172asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_172asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_486__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_175asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_175asof_join_backward_on_X_by_Y = {"__pyx_fuse_8_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_175asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_175asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults55 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_174asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_174asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_488__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_177asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_177asof_join_backward_on_X_by_Y = {"__pyx_fuse_8_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_177asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_177asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults56 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_176asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_176asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_490__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_179asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_179asof_join_backward_on_X_by_Y = {"__pyx_fuse_9_0asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_179asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_179asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults57 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_178asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_178asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_0asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_492__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_181asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_181asof_join_backward_on_X_by_Y = {"__pyx_fuse_9_1asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_181asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_181asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults58 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_180asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_180asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_1asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_494__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_183asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_183asof_join_backward_on_X_by_Y = {"__pyx_fuse_9_2asof_join_backward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_183asof_join_backward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_183asof_join_backward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults59 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 677, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward_on_X_by_Y") < 0)) __PYX_ERR(0, 677, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 677, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 678, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 679, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 680, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 681, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 677, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_182asof_join_backward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_182asof_join_backward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_2asof_join_backward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_20);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_3 = 0;
/* … */
  __pyx_tuple__48 = PyTuple_Pack(18, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_left_by_values, __pyx_n_s_right_by_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_found_right_pos, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_has_tolerance, __pyx_n_s_tolerance_2, __pyx_n_s_diff, __pyx_n_s_hash_table, __pyx_n_s_by_value); if (unlikely(!__pyx_tuple__48)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__48);
  __Pyx_GIVEREF(__pyx_tuple__48);
  __pyx_t_3 = __Pyx_PyDict_NewPresized(30); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_125asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults30), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults30, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_436__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int8_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_127asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults31), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults31, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_438__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int8_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_129asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults32), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults32, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults32, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_440__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int8_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_131asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults33), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults33, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults33, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_442__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int16_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_133asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults34), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults34, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults34, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_444__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int16_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_135asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults35), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults35, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_446__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int16_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_137asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults36), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults36, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_448__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int32_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_139asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults37), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults37, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_450__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int32_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_141asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults38), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults38, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_452__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int32_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_143asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults39), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults39, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_454__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int64_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_145asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults40), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults40, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_456__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int64_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_147asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults41), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults41, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_458__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_int64_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_149asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults42), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults42, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_460__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint8_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_151asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults43), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults43, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_462__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint8_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_153asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults44), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults44, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_464__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint8_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_155asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults45), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults45, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_466__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint16_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_157asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults46), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults46, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_468__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint16_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_159asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults47), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults47, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_470__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint16_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_161asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults48), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults48, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_472__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint32_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_163asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults49), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults49, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_474__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint32_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_165asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults50), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults50, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_476__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint32_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_167asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults51), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults51, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_478__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint64_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_169asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults52), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults52, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_480__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint64_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_171asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults53), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults53, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_482__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_uint64_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_173asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults54), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults54, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_484__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_float32_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_175asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults55), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults55, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_486__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_float32_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_177asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults56), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults56, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_488__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_float32_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_179asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults57), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults57, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_490__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_float64_t_object, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_181asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults58), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults58, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_492__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_float64_t_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_183asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults59), 1)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults59, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_494__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_kp_s_float64_t_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_17asof_join_backward_on_X_by_Y, 0, __pyx_n_s_asof_join_backward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__49)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  ((__pyx_FusedFunctionObject *) __pyx_t_4)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_backward_on_X_by_Y, __pyx_t_4) < 0) __PYX_ERR(0, 677, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_codeobj__49 = (PyObject*)__Pyx_PyCode_New(6, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__48, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_backward_on_X_by_Y, 677, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__49)) __PYX_ERR(0, 677, __pyx_L1_error)
 0678:                                  numeric_t[:] right_values,
 0679:                                  by_t[:] left_by_values,
 0680:                                  by_t[:] right_by_values,
+0681:                                  bint allow_exact_matches=True,
  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 681, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
 0682:                                  tolerance=None):
 0683: 
 0684:     cdef:
 0685:         Py_ssize_t left_pos, right_pos, left_size, right_size, found_right_pos
 0686:         ndarray[intp_t] left_indexer, right_indexer
+0687:         bint has_tolerance = False
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
+0688:         numeric_t tolerance_ = 0
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
+0689:         numeric_t diff = 0
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
 0690:         HashTable hash_table
 0691:         by_t by_value
 0692: 
 0693:     # if we are using tolerance, set our objects
+0694:     if tolerance is not None:
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+0695:         has_tolerance = True
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
+0696:         tolerance_ = tolerance
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 696, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
 0697: 
+0698:     left_size = len(left_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
+0699:     right_size = len(right_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
 0700: 
+0701:     left_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 701, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 701, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 701, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+0702:     right_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 702, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 702, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 702, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 0703: 
 0704:     if by_t is object:
+0705:         hash_table = PyObjectHashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 705, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 0706:     elif by_t is int64_t:
+0707:         hash_table = Int64HashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 707, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 0708:     elif by_t is uint64_t:
+0709:         hash_table = UInt64HashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 709, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 0710: 
+0711:     right_pos = 0
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
+0712:     for left_pos in range(left_size):
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
 0713:         # restart right_pos if it went negative in a previous iteration
+0714:         if right_pos < 0:
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
+0715:             right_pos = 0
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
 0716: 
 0717:         # find last position in right whose value is less than left's
+0718:         if allow_exact_matches:
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
+0719:             while (right_pos < right_size and
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
+0720:                    right_values[right_pos] <= left_values[left_pos]):
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 720, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
+0721:                 hash_table.set_item(right_by_values[right_pos], right_pos)
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 721, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_19 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 721, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_20 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_20);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_20, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_20, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_20, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_20, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 721, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0722:                 right_pos += 1
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
 0723:         else:
+0724:             while (right_pos < right_size and
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
+0725:                    right_values[right_pos] < left_values[left_pos]):
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 725, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
+0726:                 hash_table.set_item(right_by_values[right_pos], right_pos)
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 726, __pyx_L1_error)
        }
        __pyx_t_20 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_18 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_20)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_20);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 726, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_20, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_20); __pyx_t_20 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_20);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_20);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_20 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 726, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0727:                 right_pos += 1
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
+0728:         right_pos -= 1
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
 0729: 
 0730:         # save positions as the desired index
+0731:         by_value = left_by_values[left_pos]
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 731, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_18 * __pyx_v_left_by_values.strides[0]) )));
+0732:         found_right_pos = (hash_table.get_item(by_value)
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_22 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_22 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 732, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_21 = __pyx_t_22;
    } else {
      __pyx_t_21 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_21;
+0733:                            if by_value in hash_table else -1)
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 733, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
+0734:         left_indexer[left_pos] = left_pos
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 734, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
+0735:         right_indexer[left_pos] = found_right_pos
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 735, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
 0736: 
 0737:         # if needed, verify that tolerance is met
+0738:         if has_tolerance and found_right_pos != -1:
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
+0739:             diff = left_values[left_pos] - right_values[found_right_pos]
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 739, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
+0740:             if diff > tolerance_:
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0741:                 right_indexer[left_pos] = -1
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 741, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
 0742: 
+0743:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 743, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
 0744: 
 0745: 
+0746: def asof_join_forward_on_X_by_Y(numeric_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y = {"asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_18asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_18asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 746, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 746, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 746, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 746, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 746, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 746, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 746, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 746, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 746, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 746, __pyx_L1_error)
  __pyx_t_3 = ((2 < __pyx_t_5) != 0);
  if (__pyx_t_3) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 746, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  __pyx_t_2 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L94_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 746, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_by_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_2;
  __pyx_L94_bool_binop_done:;
  if (__pyx_t_3) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 746, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_by_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 746, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 746, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 746, __pyx_L1_error)
  }
  __pyx_L93:;
  while (1) {
    __pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
        __pyx_t_1 = 0;
        goto __pyx_L99;
      }
      __pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
        __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
          __pyx_t_1 = 0;
          goto __pyx_L100;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
        }
        __pyx_L100:;
        goto __pyx_L99;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
      }
      __pyx_L99:;
      __pyx_v_itemsize = -1L;
      __pyx_t_3 = (__pyx_v_dtype != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L103_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 746, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L107_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          break;
          case 'f':
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L111_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L111_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L115_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L115_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L119_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L119_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
    goto __pyx_L97_break;
  }
  __pyx_L97_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 746, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 746, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 746, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L127;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L125_break;
        }
        __pyx_L127:;
      }
    }
    __pyx_L125_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 746, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 746, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 746, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 746, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 746, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_13 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 746, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_13;
    __pyx_t_13 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_556__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults90, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults90, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults90, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults90, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y = {"__pyx_fuse_0_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults90 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults90, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_186asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_186asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_558__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults91, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults91, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults91, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults91, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y = {"__pyx_fuse_0_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults91 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults91, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_188asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_188asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_560__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults92, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults92, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults92, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults92, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y = {"__pyx_fuse_0_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults92 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults92, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_190asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_190asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_562__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults93, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults93, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults93, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults93, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y = {"__pyx_fuse_1_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults93 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults93, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_192asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_192asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_564__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults94, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults94, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults94, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults94, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y = {"__pyx_fuse_1_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults94 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults94, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_194asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_194asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_566__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults95, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults95, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults95, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults95, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y = {"__pyx_fuse_1_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults95 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults95, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_196asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_196asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_568__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y = {"__pyx_fuse_2_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults96 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_198asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_198asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_570__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y = {"__pyx_fuse_2_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults97 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_200asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_200asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_572__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y = {"__pyx_fuse_2_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults98 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_202asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_202asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_574__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y = {"__pyx_fuse_3_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults99 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_204asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_204asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_576__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y = {"__pyx_fuse_3_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults100 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_206asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_206asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_578__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y = {"__pyx_fuse_3_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults101 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_208asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_208asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_580__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y = {"__pyx_fuse_4_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults102 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_210asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_210asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_582__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y = {"__pyx_fuse_4_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults103 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_212asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_212asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_584__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y = {"__pyx_fuse_4_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults104 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_214asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_214asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_586__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y = {"__pyx_fuse_5_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults105 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_216asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_216asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_588__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y = {"__pyx_fuse_5_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults106 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_218asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_218asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_590__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y = {"__pyx_fuse_5_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults107 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_220asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_220asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_592__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_223asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_223asof_join_forward_on_X_by_Y = {"__pyx_fuse_6_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_223asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_223asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults108 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_222asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_222asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_594__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_225asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_225asof_join_forward_on_X_by_Y = {"__pyx_fuse_6_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_225asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_225asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults109 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_224asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_224asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_596__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_227asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_227asof_join_forward_on_X_by_Y = {"__pyx_fuse_6_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_227asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_227asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults110 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_226asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_226asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_598__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_229asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_229asof_join_forward_on_X_by_Y = {"__pyx_fuse_7_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_229asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_229asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults111 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_228asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_228asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_600__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_231asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_231asof_join_forward_on_X_by_Y = {"__pyx_fuse_7_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_231asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_231asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults112 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_230asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_230asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_602__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_233asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_233asof_join_forward_on_X_by_Y = {"__pyx_fuse_7_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_233asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_233asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults113 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_232asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_232asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_604__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_235asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_235asof_join_forward_on_X_by_Y = {"__pyx_fuse_8_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_235asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_235asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults114 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_234asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_234asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_606__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_237asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_237asof_join_forward_on_X_by_Y = {"__pyx_fuse_8_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_237asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_237asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults115 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_236asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_236asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_608__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_239asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_239asof_join_forward_on_X_by_Y = {"__pyx_fuse_8_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_239asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_239asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults116 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_238asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_238asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float32_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_610__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_241asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_241asof_join_forward_on_X_by_Y = {"__pyx_fuse_9_0asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_241asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_241asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults117 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_240asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_240asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  PyObject *__pyx_v_by_value = 0;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_0asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __Pyx_XDECREF(__pyx_v_by_value);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_612__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_243asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_243asof_join_forward_on_X_by_Y = {"__pyx_fuse_9_1asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_243asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_243asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults118 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_242asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_242asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_int64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_1asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_614__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_245asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_245asof_join_forward_on_X_by_Y = {"__pyx_fuse_9_2asof_join_forward_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_245asof_join_forward_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_245asof_join_forward_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults119 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 746, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward_on_X_by_Y") < 0)) __PYX_ERR(0, 746, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 746, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 747, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 748, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 749, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 750, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 746, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_244asof_join_forward_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_244asof_join_forward_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_found_right_pos;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *__pyx_v_hash_table = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_by_value;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_2asof_join_forward_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  __Pyx_XDECREF(__pyx_t_18);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_hash_table);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_4, 1, Py_None);
  __pyx_t_1 = 0;
/* … */
  __pyx_tuple__50 = PyTuple_Pack(18, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_left_by_values, __pyx_n_s_right_by_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_found_right_pos, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_has_tolerance, __pyx_n_s_tolerance_2, __pyx_n_s_diff, __pyx_n_s_hash_table, __pyx_n_s_by_value); if (unlikely(!__pyx_tuple__50)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__50);
  __Pyx_GIVEREF(__pyx_tuple__50);
  __pyx_t_1 = __Pyx_PyDict_NewPresized(30); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_187asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults90), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults90, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults90, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_556__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int8_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_189asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults91), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults91, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults91, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_558__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int8_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_191asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults92), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults92, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults92, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_560__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int8_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_193asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults93), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults93, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults93, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_562__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int16_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_195asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults94), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults94, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults94, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_564__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int16_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_197asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults95), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults95, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults95, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_566__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int16_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_199asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults96), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults96, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_568__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int32_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_201asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults97), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults97, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_570__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int32_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_203asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults98), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults98, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_572__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int32_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_205asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults99), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults99, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_574__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int64_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_207asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults100), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults100, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_576__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int64_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_209asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults101), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults101, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_578__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_int64_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_211asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults102), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults102, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_580__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint8_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_213asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults103), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults103, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_582__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint8_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_215asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults104), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults104, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_584__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint8_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_217asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults105), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults105, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_586__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint16_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_219asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults106), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults106, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_588__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint16_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_221asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults107), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults107, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_590__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint16_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_223asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults108), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults108, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_592__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_225asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults109), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults109, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_594__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_227asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults110), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults110, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_596__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint32_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_229asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults111), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults111, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_598__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_231asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults112), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults112, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_600__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_233asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults113), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults113, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_602__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_uint64_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_235asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults114), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults114, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_604__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_float32_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_237asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults115), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults115, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_606__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_float32_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_239asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults116), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults116, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_608__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_float32_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_241asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults117), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults117, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_610__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_float64_t_object, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_243asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults118), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults118, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_612__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_float64_t_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_245asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults119), 1)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults119, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_614__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_kp_s_float64_t_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_19asof_join_forward_on_X_by_Y, 0, __pyx_n_s_asof_join_forward_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__51)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_forward_on_X_by_Y, __pyx_t_3) < 0) __PYX_ERR(0, 746, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_codeobj__51 = (PyObject*)__Pyx_PyCode_New(6, 0, 18, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__50, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_forward_on_X_by_Y, 746, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__51)) __PYX_ERR(0, 746, __pyx_L1_error)
 0747:                                 numeric_t[:] right_values,
 0748:                                 by_t[:] left_by_values,
 0749:                                 by_t[:] right_by_values,
+0750:                                 bint allow_exact_matches=1,
  __pyx_t_1 = __Pyx_PyInt_From_long(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 750, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
 0751:                                 tolerance=None):
 0752: 
 0753:     cdef:
 0754:         Py_ssize_t left_pos, right_pos, left_size, right_size, found_right_pos
 0755:         ndarray[intp_t] left_indexer, right_indexer
+0756:         bint has_tolerance = False
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
+0757:         numeric_t tolerance_ = 0
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
+0758:         numeric_t diff = 0
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
 0759:         HashTable hash_table
 0760:         by_t by_value
 0761: 
 0762:     # if we are using tolerance, set our objects
+0763:     if tolerance is not None:
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+0764:         has_tolerance = True
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
+0765:         tolerance_ = tolerance
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 765, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
 0766: 
+0767:     left_size = len(left_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
+0768:     right_size = len(right_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
 0769: 
+0770:     left_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 770, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 770, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 770, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+0771:     right_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 771, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 771, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 771, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 0772: 
 0773:     if by_t is object:
+0774:         hash_table = PyObjectHashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_PyObjectHashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 774, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 0775:     elif by_t is int64_t:
+0776:         hash_table = Int64HashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_Int64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 776, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 0777:     elif by_t is uint64_t:
+0778:         hash_table = UInt64HashTable(right_size)
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __pyx_t_8 = PyInt_FromSsize_t(__pyx_v_right_size); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_CallOneArg(((PyObject *)__pyx_ptype_6pandas_5_libs_9hashtable_UInt64HashTable), __pyx_t_8); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 778, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_v_hash_table = ((struct __pyx_obj_6pandas_5_libs_9hashtable_HashTable *)__pyx_t_9);
  __pyx_t_9 = 0;
 0779: 
+0780:     right_pos = right_size - 1
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
+0781:     for left_pos in range(left_size - 1, -1, -1):
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
 0782:         # restart right_pos if it went over in a previous iteration
+0783:         if right_pos == right_size:
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
+0784:             right_pos = right_size - 1
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
 0785: 
 0786:         # find first position in right whose value is greater than left's
+0787:         if allow_exact_matches:
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
+0788:             while (right_pos >= 0 and
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
+0789:                    right_values[right_pos] >= left_values[left_pos]):
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 789, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
+0790:                 hash_table.set_item(right_by_values[right_pos], right_pos)
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 790, __pyx_L1_error)
        }
        __pyx_t_7 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_17 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_7);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 790, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_6 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_6)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_6);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_6, __pyx_t_7, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_18 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_18);
          if (__pyx_t_6) {
            __Pyx_GIVEREF(__pyx_t_6); PyTuple_SET_ITEM(__pyx_t_18, 0, __pyx_t_6); __pyx_t_6 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_7);
          PyTuple_SET_ITEM(__pyx_t_18, 0+__pyx_t_11, __pyx_t_7);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_18, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_7 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_18, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 790, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0791:                 right_pos -= 1
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
 0792:         else:
+0793:             while (right_pos >= 0 and
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
+0794:                    right_values[right_pos] > left_values[left_pos]):
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 794, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
+0795:                 hash_table.set_item(right_by_values[right_pos], right_pos)
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) ));
        __Pyx_INCREF((PyObject*)__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_int64((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
/* … */
        __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_set_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_8);
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_by_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_by_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 795, __pyx_L1_error)
        }
        __pyx_t_18 = __Pyx_PyInt_From_npy_uint64((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_by_values.data + __pyx_t_16 * __pyx_v_right_by_values.strides[0]) )))); if (unlikely(!__pyx_t_18)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_18);
        __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_right_pos); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 795, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_5);
        __pyx_t_7 = NULL;
        __pyx_t_11 = 0;
        if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
          __pyx_t_7 = PyMethod_GET_SELF(__pyx_t_8);
          if (likely(__pyx_t_7)) {
            PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
            __Pyx_INCREF(__pyx_t_7);
            __Pyx_INCREF(function);
            __Pyx_DECREF_SET(__pyx_t_8, function);
            __pyx_t_11 = 1;
          }
        }
        #if CYTHON_FAST_PYCALL
        if (PyFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        #if CYTHON_FAST_PYCCALL
        if (__Pyx_PyFastCFunction_Check(__pyx_t_8)) {
          PyObject *__pyx_temp[3] = {__pyx_t_7, __pyx_t_18, __pyx_t_5};
          __pyx_t_9 = __Pyx_PyCFunction_FastCall(__pyx_t_8, __pyx_temp+1-__pyx_t_11, 2+__pyx_t_11); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_XDECREF(__pyx_t_7); __pyx_t_7 = 0;
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_18); __pyx_t_18 = 0;
          __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
        } else
        #endif
        {
          __pyx_t_6 = PyTuple_New(2+__pyx_t_11); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          if (__pyx_t_7) {
            __Pyx_GIVEREF(__pyx_t_7); PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_t_7); __pyx_t_7 = NULL;
          }
          __Pyx_GIVEREF(__pyx_t_18);
          PyTuple_SET_ITEM(__pyx_t_6, 0+__pyx_t_11, __pyx_t_18);
          __Pyx_GIVEREF(__pyx_t_5);
          PyTuple_SET_ITEM(__pyx_t_6, 1+__pyx_t_11, __pyx_t_5);
          __pyx_t_18 = 0;
          __pyx_t_5 = 0;
          __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_8, __pyx_t_6, NULL); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 795, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_9);
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        }
        __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
        __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
+0796:                 right_pos -= 1
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
+0797:         right_pos += 1
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
 0798: 
 0799:         # save positions as the desired index
+0800:         by_value = left_by_values[left_pos]
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_t_9 = (PyObject *) *((PyObject * *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) ));
    __Pyx_INCREF((PyObject*)__pyx_t_9);
    __Pyx_XDECREF_SET(__pyx_v_by_value, __pyx_t_9);
    __pyx_t_9 = 0;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_v_left_by_values.shape[0];
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_v_left_by_values.shape[0])) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 800, __pyx_L1_error)
    }
    __pyx_v_by_value = (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_by_values.data + __pyx_t_16 * __pyx_v_left_by_values.strides[0]) )));
+0801:         found_right_pos = (hash_table.get_item(by_value)
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_6 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_6)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_6);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_6) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_6, __pyx_v_by_value) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_v_by_value);
      __Pyx_XDECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
/* … */
      __pyx_t_8 = __Pyx_PyObject_GetAttrStr(((PyObject *)__pyx_v_hash_table), __pyx_n_s_get_item); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_8);
      __pyx_t_6 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __pyx_t_5 = NULL;
      if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_8))) {
        __pyx_t_5 = PyMethod_GET_SELF(__pyx_t_8);
        if (likely(__pyx_t_5)) {
          PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_8);
          __Pyx_INCREF(__pyx_t_5);
          __Pyx_INCREF(function);
          __Pyx_DECREF_SET(__pyx_t_8, function);
        }
      }
      __pyx_t_9 = (__pyx_t_5) ? __Pyx_PyObject_Call2Args(__pyx_t_8, __pyx_t_5, __pyx_t_6) : __Pyx_PyObject_CallOneArg(__pyx_t_8, __pyx_t_6);
      __Pyx_XDECREF(__pyx_t_5); __pyx_t_5 = 0;
      __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
      if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_9);
      __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
      __pyx_t_20 = __Pyx_PyIndex_AsSsize_t(__pyx_t_9); if (unlikely((__pyx_t_20 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 801, __pyx_L1_error)
      __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
      __pyx_t_19 = __pyx_t_20;
    } else {
      __pyx_t_19 = -1L;
    }
    __pyx_v_found_right_pos = __pyx_t_19;
+0802:                            if by_value in hash_table else -1)
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_v_by_value, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_int64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
/* … */
    __pyx_t_9 = __Pyx_PyInt_From_npy_uint64(__pyx_v_by_value); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_9);
    __pyx_t_2 = (__Pyx_PySequence_ContainsTF(__pyx_t_9, ((PyObject *)__pyx_v_hash_table), Py_EQ)); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 802, __pyx_L1_error)
    __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
    if ((__pyx_t_2 != 0)) {
+0803:         left_indexer[left_pos] = left_pos
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 803, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
+0804:         right_indexer[left_pos] = found_right_pos
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 804, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_found_right_pos;
 0805: 
 0806:         # if needed, verify that tolerance is met
+0807:         if has_tolerance and found_right_pos != -1:
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_found_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
+0808:             diff = right_values[found_right_pos] - left_values[left_pos]
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_found_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 808, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
+0809:             if diff > tolerance_:
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0810:                 right_indexer[left_pos] = -1
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 810, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
 0811: 
+0812:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_9 = PyTuple_New(2); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 812, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_9, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_9;
  __pyx_t_9 = 0;
  goto __pyx_L0;
 0813: 
 0814: 
+0815: def asof_join_nearest_on_X_by_Y(numeric_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y = {"asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_20asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_20asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1 * 2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  { Py_ssize_t __pyx_temp;
    for (__pyx_temp=0; __pyx_temp < 2; __pyx_temp++) {
      __Pyx_INCREF(Py_None);
      __Pyx_GIVEREF(Py_None);
      PyList_SET_ITEM(__pyx_t_1, __pyx_temp, Py_None);
    }
  }
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 815, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 815, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 815, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 815, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 815, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 815, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 815, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
  __pyx_t_3 = ((2 < __pyx_t_5) != 0);
  if (__pyx_t_3) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 815, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 2, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  __pyx_t_2 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_2 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_3 = __pyx_t_4;
    goto __pyx_L94_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 815, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_by_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
  __pyx_t_2 = (__pyx_t_4 != 0);
  __pyx_t_3 = __pyx_t_2;
  __pyx_L94_bool_binop_done:;
  if (__pyx_t_3) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 815, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_by_values); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF_SET(__pyx_v_arg, __pyx_t_6);
    __pyx_t_6 = 0;
    goto __pyx_L93;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 815, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
    __pyx_t_6 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_1 = PyTuple_New(3); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_INCREF(__pyx_int_4);
    __Pyx_GIVEREF(__pyx_int_4);
    PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_int_4);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_1, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_1, 2, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 815, __pyx_L1_error)
  }
  __pyx_L93:;
  while (1) {
    __pyx_t_3 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_2 = (__pyx_t_3 != 0);
    if (__pyx_t_2) {
      __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
        __pyx_t_1 = 0;
        goto __pyx_L99;
      }
      __pyx_t_3 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __Pyx_XDECREF_SET(__pyx_v_arg_base, __pyx_t_1);
        __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_3 = (__pyx_t_2 != 0);
        if (__pyx_t_3) {
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __Pyx_XDECREF_SET(__pyx_v_dtype, __pyx_t_1);
          __pyx_t_1 = 0;
          goto __pyx_L100;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
        }
        __pyx_L100:;
        goto __pyx_L99;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __Pyx_XDECREF_SET(__pyx_v_dtype, Py_None);
      }
      __pyx_L99:;
      __pyx_v_itemsize = -1L;
      __pyx_t_3 = (__pyx_v_dtype != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_1); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L103_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L103_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          __pyx_t_3 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_1 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_1);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_1); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 815, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
          __pyx_t_3 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_3) {
          } else {
            __pyx_t_2 = __pyx_t_3;
            goto __pyx_L107_bool_binop_done;
          }
          __pyx_t_3 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_2 = __pyx_t_3;
          __pyx_L107_bool_binop_done:;
          if (__pyx_t_2) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
            goto __pyx_L97_break;
          }
          break;
          case 'f':
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L111_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(void *))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L111_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_object(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_object, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L115_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L115_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_3 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_3) {
    } else {
      __pyx_t_2 = __pyx_t_3;
      goto __pyx_L119_bool_binop_done;
    }
    __pyx_t_3 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_2 = __pyx_t_3;
    __pyx_L119_bool_binop_done:;
    if (__pyx_t_2) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_2 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_2) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        goto __pyx_L97_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 1, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
    goto __pyx_L97_break;
  }
  __pyx_L97_break:;
  __pyx_t_1 = PyList_New(0); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_candidates = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 815, __pyx_L1_error)
  }
  __pyx_t_6 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_1);
  __pyx_t_1 = __pyx_t_6;
  __pyx_t_6 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_1, __pyx_t_9, &__pyx_t_5, &__pyx_t_6, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_6 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_6);
    __pyx_t_6 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_6);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_6);
      __pyx_t_6 = 0;
      __pyx_t_2 = (__pyx_v_dst_type != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_6, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_3 < 0)) __PYX_ERR(0, 815, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_3) {
          __pyx_v_match_found = 1;
          goto __pyx_L127;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L125_break;
        }
        __pyx_L127:;
      }
    }
    __pyx_L125_break:;
    __pyx_t_3 = (__pyx_v_match_found != 0);
    if (__pyx_t_3) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_3 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_2 = ((!__pyx_t_3) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 815, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 815, __pyx_L1_error)
  __pyx_t_2 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_2) {
    __pyx_t_1 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_Raise(__pyx_t_1, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __PYX_ERR(0, 815, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 815, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_13 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 815, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __pyx_r = __pyx_t_13;
    __pyx_t_13 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_676__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults150, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults150, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults150, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults150, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y = {"__pyx_fuse_0_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_0__pyx_pw_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults150 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults150, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_248asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_248asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int8_t __pyx_v_bdiff;
  __pyx_t_5numpy_int8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_678__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults151, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults151, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults151, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults151, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y = {"__pyx_fuse_0_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_1__pyx_pw_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults151 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults151, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_250asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_250asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int8_t __pyx_v_bdiff;
  __pyx_t_5numpy_int8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_680__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults152, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults152, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults152, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults152, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y = {"__pyx_fuse_0_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0_2__pyx_pw_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults152 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults152, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_252asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_252asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int8_t __pyx_v_bdiff;
  __pyx_t_5numpy_int8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_682__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults153, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults153, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults153, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults153, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y = {"__pyx_fuse_1_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_0__pyx_pw_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults153 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults153, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_254asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_254asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int16_t __pyx_v_bdiff;
  __pyx_t_5numpy_int16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_684__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults154, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults154, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults154, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults154, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y = {"__pyx_fuse_1_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_1__pyx_pw_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults154 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults154, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_256asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_256asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int16_t __pyx_v_bdiff;
  __pyx_t_5numpy_int16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_686__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults155, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults155, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults155, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults155, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y = {"__pyx_fuse_1_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1_2__pyx_pw_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults155 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults155, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_258asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_258asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int16_t __pyx_v_bdiff;
  __pyx_t_5numpy_int16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_688__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults156, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults156, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults156, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults156, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y = {"__pyx_fuse_2_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_0__pyx_pw_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults156 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults156, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_260asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_260asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int32_t __pyx_v_bdiff;
  __pyx_t_5numpy_int32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_690__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y = {"__pyx_fuse_2_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_1__pyx_pw_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults157 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_262asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_262asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int32_t __pyx_v_bdiff;
  __pyx_t_5numpy_int32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_692__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y = {"__pyx_fuse_2_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2_2__pyx_pw_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults158 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_264asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_264asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int32_t __pyx_v_bdiff;
  __pyx_t_5numpy_int32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_694__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y = {"__pyx_fuse_3_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_0__pyx_pw_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults159 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_266asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_266asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int64_t __pyx_v_bdiff;
  __pyx_t_5numpy_int64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_696__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y = {"__pyx_fuse_3_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_1__pyx_pw_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults160 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_268asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_268asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int64_t __pyx_v_bdiff;
  __pyx_t_5numpy_int64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_698__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y = {"__pyx_fuse_3_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3_2__pyx_pw_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults161 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_270asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_270asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int64_t __pyx_v_bdiff;
  __pyx_t_5numpy_int64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_700__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y = {"__pyx_fuse_4_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_0__pyx_pw_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults162 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_272asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_272asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint8_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_702__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y = {"__pyx_fuse_4_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_1__pyx_pw_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults163 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_274asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_274asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint8_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_704__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y = {"__pyx_fuse_4_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4_2__pyx_pw_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults164 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_276asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_276asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint8_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_706__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y = {"__pyx_fuse_5_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_0__pyx_pw_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults165 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_278asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_278asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint16_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_708__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y = {"__pyx_fuse_5_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_1__pyx_pw_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults166 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_280asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_280asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint16_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_710__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y = {"__pyx_fuse_5_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5_2__pyx_pw_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults167 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_282asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_282asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint16_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_712__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_285asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_285asof_join_nearest_on_X_by_Y = {"__pyx_fuse_6_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_285asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_0__pyx_pw_6pandas_5_libs_4join_285asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults168 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_284asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_284asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint32_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_714__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_287asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_287asof_join_nearest_on_X_by_Y = {"__pyx_fuse_6_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_287asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_1__pyx_pw_6pandas_5_libs_4join_287asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults169 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_286asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_286asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint32_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_716__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_289asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_289asof_join_nearest_on_X_by_Y = {"__pyx_fuse_6_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_289asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6_2__pyx_pw_6pandas_5_libs_4join_289asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults170 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_288asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_288asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint32_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_718__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_291asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_291asof_join_nearest_on_X_by_Y = {"__pyx_fuse_7_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_291asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_0__pyx_pw_6pandas_5_libs_4join_291asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults171 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_290asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_290asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_720__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_293asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_293asof_join_nearest_on_X_by_Y = {"__pyx_fuse_7_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_293asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_1__pyx_pw_6pandas_5_libs_4join_293asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults172 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_292asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_292asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_722__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_295asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_295asof_join_nearest_on_X_by_Y = {"__pyx_fuse_7_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_295asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7_2__pyx_pw_6pandas_5_libs_4join_295asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults173 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_294asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_294asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_724__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_297asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_297asof_join_nearest_on_X_by_Y = {"__pyx_fuse_8_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_297asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_0__pyx_pw_6pandas_5_libs_4join_297asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults174 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_296asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_296asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float32_t __pyx_v_bdiff;
  __pyx_t_5numpy_float32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_726__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_299asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_299asof_join_nearest_on_X_by_Y = {"__pyx_fuse_8_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_299asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_1__pyx_pw_6pandas_5_libs_4join_299asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults175 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_298asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_298asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float32_t __pyx_v_bdiff;
  __pyx_t_5numpy_float32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_728__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_301asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_301asof_join_nearest_on_X_by_Y = {"__pyx_fuse_8_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_301asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8_2__pyx_pw_6pandas_5_libs_4join_301asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults176 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_300asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_300asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float32_t __pyx_v_bdiff;
  __pyx_t_5numpy_float32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_730__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_303asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_303asof_join_nearest_on_X_by_Y = {"__pyx_fuse_9_0asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_303asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_0__pyx_pw_6pandas_5_libs_4join_303asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults177 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_object(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_302asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_302asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float64_t __pyx_v_bdiff;
  __pyx_t_5numpy_float64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_0asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_732__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_305asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_305asof_join_nearest_on_X_by_Y = {"__pyx_fuse_9_1asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_305asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_1__pyx_pw_6pandas_5_libs_4join_305asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults178 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_304asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_304asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float64_t __pyx_v_bdiff;
  __pyx_t_5numpy_float64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_1asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_734__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_307asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_307asof_join_nearest_on_X_by_Y = {"__pyx_fuse_9_2asof_join_nearest_on_X_by_Y", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_307asof_join_nearest_on_X_by_Y, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9_2__pyx_pw_6pandas_5_libs_4join_307asof_join_nearest_on_X_by_Y(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_left_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_by_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest_on_X_by_Y (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_left_by_values,&__pyx_n_s_right_by_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[6] = {0,0,0,0,0,0};
    __pyx_defaults179 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_self);
    values[5] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 1); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (likely((values[2] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 2); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (likely((values[3] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_by_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, 3); __PYX_ERR(0, 815, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  4:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[4] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  5:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[5] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest_on_X_by_Y") < 0)) __PYX_ERR(0, 815, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  6: values[5] = PyTuple_GET_ITEM(__pyx_args, 5);
        CYTHON_FALLTHROUGH;
        case  5: values[4] = PyTuple_GET_ITEM(__pyx_args, 4);
        CYTHON_FALLTHROUGH;
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 815, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 816, __pyx_L3_error)
    __pyx_v_left_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[2], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_by_values.memview)) __PYX_ERR(0, 817, __pyx_L3_error)
    __pyx_v_right_by_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[3], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_by_values.memview)) __PYX_ERR(0, 818, __pyx_L3_error)
    if (values[4]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[4]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 819, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[5];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest_on_X_by_Y", 0, 4, 6, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 815, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_306asof_join_nearest_on_X_by_Y(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_left_by_values, __pyx_v_right_by_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_306asof_join_nearest_on_X_by_Y(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, __Pyx_memviewslice __pyx_v_left_by_values, __Pyx_memviewslice __pyx_v_right_by_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  CYTHON_UNUSED Py_ssize_t __pyx_v_right_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float64_t __pyx_v_bdiff;
  __pyx_t_5numpy_float64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9_2asof_join_nearest_on_X_by_Y", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_XDECREF(__pyx_t_15);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest_on_X_by_Y", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_by_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_by_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_3, 1, Py_None);
  __pyx_t_4 = 0;
/* … */
  __pyx_tuple__52 = PyTuple_Pack(17, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_left_by_values, __pyx_n_s_right_by_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_i, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_bli, __pyx_n_s_bri, __pyx_n_s_fli, __pyx_n_s_fri, __pyx_n_s_bdiff, __pyx_n_s_fdiff); if (unlikely(!__pyx_tuple__52)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__52);
  __Pyx_GIVEREF(__pyx_tuple__52);
  __pyx_t_4 = __Pyx_PyDict_NewPresized(30); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_0__pyx_mdef_6pandas_5_libs_4join_249asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults150), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults150, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults150, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_676__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int8_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_1__pyx_mdef_6pandas_5_libs_4join_251asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults151), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults151, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults151, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_678__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int8_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0_2__pyx_mdef_6pandas_5_libs_4join_253asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults152), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults152, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults152, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_680__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int8_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_0__pyx_mdef_6pandas_5_libs_4join_255asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults153), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults153, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults153, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_682__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int16_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_1__pyx_mdef_6pandas_5_libs_4join_257asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults154), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults154, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults154, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_684__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int16_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1_2__pyx_mdef_6pandas_5_libs_4join_259asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults155), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults155, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults155, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_686__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int16_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_2_0__pyx_mdef_6pandas_5_libs_4join_261asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults156), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults156, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults156, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_688__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int32_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_2_1__pyx_mdef_6pandas_5_libs_4join_263asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults157), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults157, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_690__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int32_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_2_2__pyx_mdef_6pandas_5_libs_4join_265asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults158), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults158, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_692__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int32_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_3_0__pyx_mdef_6pandas_5_libs_4join_267asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults159), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults159, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_694__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int64_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_3_1__pyx_mdef_6pandas_5_libs_4join_269asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults160), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults160, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_696__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int64_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_3_2__pyx_mdef_6pandas_5_libs_4join_271asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults161), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults161, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_698__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_int64_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_4_0__pyx_mdef_6pandas_5_libs_4join_273asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults162), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults162, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_700__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint8_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_4_1__pyx_mdef_6pandas_5_libs_4join_275asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults163), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults163, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_702__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint8_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_4_2__pyx_mdef_6pandas_5_libs_4join_277asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults164), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults164, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_704__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint8_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_5_0__pyx_mdef_6pandas_5_libs_4join_279asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults165), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults165, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_706__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint16_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_5_1__pyx_mdef_6pandas_5_libs_4join_281asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults166), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults166, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_708__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint16_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_5_2__pyx_mdef_6pandas_5_libs_4join_283asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults167), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults167, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_710__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint16_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_6_0__pyx_mdef_6pandas_5_libs_4join_285asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults168), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults168, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_712__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint32_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_6_1__pyx_mdef_6pandas_5_libs_4join_287asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults169), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults169, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_714__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint32_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_6_2__pyx_mdef_6pandas_5_libs_4join_289asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults170), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults170, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_716__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint32_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_7_0__pyx_mdef_6pandas_5_libs_4join_291asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults171), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults171, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_718__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint64_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_7_1__pyx_mdef_6pandas_5_libs_4join_293asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults172), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults172, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_720__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint64_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_7_2__pyx_mdef_6pandas_5_libs_4join_295asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults173), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults173, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_722__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_uint64_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_8_0__pyx_mdef_6pandas_5_libs_4join_297asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults174), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults174, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_724__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_float32_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_8_1__pyx_mdef_6pandas_5_libs_4join_299asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults175), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults175, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_726__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_float32_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_8_2__pyx_mdef_6pandas_5_libs_4join_301asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults176), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults176, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_728__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_float32_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_9_0__pyx_mdef_6pandas_5_libs_4join_303asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults177), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults177, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_730__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_float64_t_object, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_9_1__pyx_mdef_6pandas_5_libs_4join_305asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults178), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults178, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_732__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_float64_t_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_9_2__pyx_mdef_6pandas_5_libs_4join_307asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults179), 1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults179, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_734__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_kp_s_float64_t_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_21asof_join_nearest_on_X_by_Y, 0, __pyx_n_s_asof_join_nearest_on_X_by_Y, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__53)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_4;
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_nearest_on_X_by_Y, __pyx_t_1) < 0) __PYX_ERR(0, 815, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__53 = (PyObject*)__Pyx_PyCode_New(6, 0, 17, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__52, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_nearest_on_X_by_Y, 815, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__53)) __PYX_ERR(0, 815, __pyx_L1_error)
 0816:                                 numeric_t[:] right_values,
 0817:                                 by_t[:] left_by_values,
 0818:                                 by_t[:] right_by_values,
+0819:                                 bint allow_exact_matches=True,
  __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 819, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
 0820:                                 tolerance=None):
 0821: 
 0822:     cdef:
 0823:         Py_ssize_t left_size, right_size, i
 0824:         ndarray[intp_t] left_indexer, right_indexer, bli, bri, fli, fri
 0825:         numeric_t bdiff, fdiff
 0826: 
+0827:     left_size = len(left_values)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
+0828:     right_size = len(right_values)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_1;
 0829: 
+0830:     left_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 830, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 830, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 830, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
+0831:     right_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 831, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 831, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 831, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
 0832: 
 0833:     # search both forward and backward
+0834:     bli, bri = asof_join_backward_on_X_by_Y(
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward_on_X_by_Y); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 834, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 834, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
+0835:         left_values,
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 835, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
+0836:         right_values,
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 836, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
+0837:         left_by_values,
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 837, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
+0838:         right_by_values,
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 838, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
+0839:         allow_exact_matches,
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 839, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
+0840:         tolerance,
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_14 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_14)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_14);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[7] = {__pyx_t_14, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_t_12, __pyx_t_13, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  } else
  #endif
  {
    __pyx_t_15 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    if (__pyx_t_14) {
      __Pyx_GIVEREF(__pyx_t_14); PyTuple_SET_ITEM(__pyx_t_15, 0, __pyx_t_14); __pyx_t_14 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_15, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_15, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_15, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_15, 3+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_15, 4+__pyx_t_8, __pyx_t_13);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_15, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_12 = 0;
    __pyx_t_13 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_15, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 834, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_15 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_15);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_15 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_13 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 834, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_13)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_15 = __pyx_t_16(__pyx_t_13); if (unlikely(!__pyx_t_15)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_13), 2) < 0) __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 834, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
 0841:     )
+0842:     fli, fri = asof_join_forward_on_X_by_Y(
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_15, __pyx_n_s_asof_join_forward_on_X_by_Y); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_15);
/* … */
  if (!(likely(((__pyx_t_15) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_15, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  if (!(likely(((__pyx_t_14) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_14, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 842, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_15);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_15);
  __pyx_t_15 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_14);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 842, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_14);
  __pyx_t_14 = 0;
+0843:         left_values,
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
/* … */
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 843, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
+0844:         right_values,
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
/* … */
  __pyx_t_13 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 844, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
+0845:         left_by_values,
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
/* … */
  __pyx_t_12 = __pyx_memoryview_fromslice(__pyx_v_left_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 845, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_12);
+0846:         right_by_values,
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_object, (int (*)(char *, PyObject *)) __pyx_memview_set_object, 1);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_by_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 846, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
+0847:         allow_exact_matches,
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 847, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
+0848:         tolerance,
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_15))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_15);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_15);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_15, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_15)) {
    PyObject *__pyx_temp[7] = {__pyx_t_4, __pyx_t_6, __pyx_t_13, __pyx_t_12, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_15, __pyx_temp+1-__pyx_t_8, 6+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_14 = PyTuple_New(6+__pyx_t_8); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_14, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_14, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_13);
    PyTuple_SET_ITEM(__pyx_t_14, 1+__pyx_t_8, __pyx_t_13);
    __Pyx_GIVEREF(__pyx_t_12);
    PyTuple_SET_ITEM(__pyx_t_14, 2+__pyx_t_8, __pyx_t_12);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_14, 3+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_14, 4+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_14, 5+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_13 = 0;
    __pyx_t_12 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_15, __pyx_t_14, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_14); __pyx_t_14 = 0;
  }
  __Pyx_DECREF(__pyx_t_15); __pyx_t_15 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 842, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_15 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_15 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_14 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_15);
    __Pyx_INCREF(__pyx_t_14);
    #else
    __pyx_t_15 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_15)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_15);
    __pyx_t_14 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_14)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_14);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 842, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_16 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_15 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_15)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_15);
    index = 1; __pyx_t_14 = __pyx_t_16(__pyx_t_2); if (unlikely(!__pyx_t_14)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_14);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_16(__pyx_t_2), 2) < 0) __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_t_16 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_16 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 842, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
 0849:     )
 0850: 
+0851:     for i in range(len(bri)):
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
/* … */
  __pyx_t_17 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_17 == ((Py_ssize_t)-1))) __PYX_ERR(0, 851, __pyx_L1_error)
  __pyx_t_18 = __pyx_t_17;
  for (__pyx_t_19 = 0; __pyx_t_19 < __pyx_t_18; __pyx_t_19+=1) {
    __pyx_v_i = __pyx_t_19;
 0852:         # choose timestamp from right with smaller difference
+0853:         if bri[i] != -1 and fri[i] != -1:
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_22) {
    } else {
      __pyx_t_20 = __pyx_t_22;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 853, __pyx_L1_error)
    }
    __pyx_t_22 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_20 = __pyx_t_22;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_20) {
/* … */
      goto __pyx_L9;
    }
+0854:             bdiff = left_values[bli[i]] - right_values[bri[i]]
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 854, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))));
+0855:             fdiff = right_values[fri[i]] - left_values[fli[i]]
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_24 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_24 < 0) {
        __pyx_t_24 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_24 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_24 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_25 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_24, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_25 < 0) {
        __pyx_t_25 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_25 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_25 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 855, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_25 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_23 * __pyx_v_left_values.strides[0]) ))));
+0856:             right_indexer[i] = bri[i] if bdiff <= fdiff else fri[i]
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 856, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 856, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
 0857:         else:
+0858:             right_indexer[i] = bri[i] if bri[i] != -1 else fri[i]
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_23 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_23 < 0) {
          __pyx_t_23 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 858, __pyx_L1_error)
        }
        __pyx_t_26 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_21 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 858, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_26;
    }
    __pyx_L9:;
+0859:         left_indexer[i] = bli[i]
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    __pyx_t_23 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_23 < 0) {
      __pyx_t_23 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_23 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 859, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_23, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
 0860: 
+0861:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 861, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
 0862: 
 0863: 
 0864: # ----------------------------------------------------------------------
 0865: # asof_join
 0866: # ----------------------------------------------------------------------
 0867: 
+0868: def asof_join_backward(numeric_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_23asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_23asof_join_backward = {"asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_23asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_23asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    values[2] = __pyx_k__5;
    values[3] = __pyx_k__6;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_22asof_join_backward(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_22asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 868, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 868, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 868, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 868, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 868, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 868, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 868, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 868, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 868, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 868, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 868, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 868, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L98;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L96_break;
        }
        __pyx_L98:;
      }
    }
    __pyx_L96_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 868, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 868, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 868, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 868, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 868, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 868, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_13;
    __pyx_t_13 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_756__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults190, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults190, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults190, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults190, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_311asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_311asof_join_backward = {"__pyx_fuse_0asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_311asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_311asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults190 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults190, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_310asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_310asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_758__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults191, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults191, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults191, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults191, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_313asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_313asof_join_backward = {"__pyx_fuse_1asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_313asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_313asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults191 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults191, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_312asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_312asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_760__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults192, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults192, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults192, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults192, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_315asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_315asof_join_backward = {"__pyx_fuse_2asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_315asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_315asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults192 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults192, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_314asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_314asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_762__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults193, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults193, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults193, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults193, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_317asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_317asof_join_backward = {"__pyx_fuse_3asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_317asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_317asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults193 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults193, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_316asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_316asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_764__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults194, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults194, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults194, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults194, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_319asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_319asof_join_backward = {"__pyx_fuse_4asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_319asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_319asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults194 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults194, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_318asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_318asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_766__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults195, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults195, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults195, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults195, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_321asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_321asof_join_backward = {"__pyx_fuse_5asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_321asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_321asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults195 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults195, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_320asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_320asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_768__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults196, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults196, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults196, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults196, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_323asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_323asof_join_backward = {"__pyx_fuse_6asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_323asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_323asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults196 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults196, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_322asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_322asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_770__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults197, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults197, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults197, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults197, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_325asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_325asof_join_backward = {"__pyx_fuse_7asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_325asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_325asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults197 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults197, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_324asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_324asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_772__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_327asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_327asof_join_backward = {"__pyx_fuse_8asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_327asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_327asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults198 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_326asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_326asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_774__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_329asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_329asof_join_backward = {"__pyx_fuse_9asof_join_backward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_329asof_join_backward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_329asof_join_backward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_backward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults199 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, 1); __PYX_ERR(0, 868, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_backward") < 0)) __PYX_ERR(0, 868, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 868, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 869, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 870, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_backward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 868, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_328asof_join_backward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_328asof_join_backward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9asof_join_backward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_backward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_3);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_3);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_3 = 0;
/* … */
  __pyx_tuple__54 = PyTuple_Pack(13, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_has_tolerance, __pyx_n_s_tolerance_2, __pyx_n_s_diff); if (unlikely(!__pyx_tuple__54)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__54);
  __Pyx_GIVEREF(__pyx_tuple__54);
/* … */
  __pyx_t_3 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_311asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults190), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults190, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults190, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_756__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int8_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_313asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults191), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults191, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults191, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_758__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int16_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_315asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults192), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults192, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults192, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_760__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int32_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_317asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults193), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults193, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults193, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_762__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_int64_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_319asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults194), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults194, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults194, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_764__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint8_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_321asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults195), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults195, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults195, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_766__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint16_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_323asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults196), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults196, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults196, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_768__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint32_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_325asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults197), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults197, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults197, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_770__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_uint64_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_327asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults198), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults198, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_772__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float32_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_329asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_4, sizeof(__pyx_defaults199), 1)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_t_4)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults199, __pyx_t_4)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_4, __pyx_pf_6pandas_5_libs_4join_774__defaults__);
  if (PyDict_SetItem(__pyx_t_3, __pyx_n_s_float64_t, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_t_4 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_23asof_join_backward, 0, __pyx_n_s_asof_join_backward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__55)); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_4, __pyx_t_1);
  ((__pyx_FusedFunctionObject *) __pyx_t_4)->__signatures__ = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_backward, __pyx_t_4) < 0) __PYX_ERR(0, 868, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_codeobj__55 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__54, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_backward, 868, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__55)) __PYX_ERR(0, 868, __pyx_L1_error)
 0869:                        numeric_t[:] right_values,
+0870:                        bint allow_exact_matches=True,
  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 870, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_k__5 = __pyx_t_3;
  __Pyx_GIVEREF(__pyx_t_3);
  __pyx_t_3 = 0;
  __Pyx_INCREF(Py_None);
  __pyx_k__6 = Py_None;
  __Pyx_GIVEREF(Py_None);
 0871:                        tolerance=None):
 0872: 
 0873:     cdef:
 0874:         Py_ssize_t left_pos, right_pos, left_size, right_size
 0875:         ndarray[intp_t] left_indexer, right_indexer
+0876:         bint has_tolerance = False
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
+0877:         numeric_t tolerance_ = 0
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
+0878:         numeric_t diff = 0
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
 0879: 
 0880:     # if we are using tolerance, set our objects
+0881:     if tolerance is not None:
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+0882:         has_tolerance = True
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
+0883:         tolerance_ = tolerance
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 883, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
 0884: 
+0885:     left_size = len(left_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
+0886:     right_size = len(right_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
 0887: 
+0888:     left_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 888, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 888, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 888, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+0889:     right_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 889, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 889, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 889, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 0890: 
+0891:     right_pos = 0
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
/* … */
  __pyx_v_right_pos = 0;
+0892:     for left_pos in range(left_size):
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
/* … */
  __pyx_t_15 = __pyx_v_left_size;
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_left_pos = __pyx_t_17;
 0893:         # restart right_pos if it went negative in a previous iteration
+0894:         if right_pos < 0:
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos < 0) != 0);
    if (__pyx_t_2) {
/* … */
    }
+0895:             right_pos = 0
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
/* … */
      __pyx_v_right_pos = 0;
 0896: 
 0897:         # find last position in right whose value is less than left's
+0898:         if allow_exact_matches:
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
+0899:             while (right_pos < right_size and
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
+0900:                    right_values[right_pos] <= left_values[left_pos]):
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_18 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 900, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_18 * __pyx_v_right_values.strides[0]) ))) <= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_19 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
+0901:                 right_pos += 1
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
 0902:         else:
+0903:             while (right_pos < right_size and
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos < __pyx_v_right_size) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
+0904:                    right_values[right_pos] < left_values[left_pos]):
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_19 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_18 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_18 < 0) {
          __pyx_t_18 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 904, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))) < (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
+0905:                 right_pos += 1
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos + 1);
      }
    }
    __pyx_L7:;
+0906:         right_pos -= 1
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos - 1);
 0907: 
 0908:         # save positions as the desired index
+0909:         left_indexer[left_pos] = left_pos
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 909, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
+0910:         right_indexer[left_pos] = right_pos
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
/* … */
    __pyx_t_18 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_18 < 0) {
      __pyx_t_18 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_18 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 910, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_18, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_v_right_pos;
 0911: 
 0912:         # if needed, verify that tolerance is met
+0913:         if has_tolerance and right_pos != -1:
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != -1L) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
+0914:             diff = left_values[left_pos] - right_values[right_pos]
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_18 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_18 < 0) {
        __pyx_t_18 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_18 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_18 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 914, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_18 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_19 * __pyx_v_right_values.strides[0]) ))));
+0915:             if diff > tolerance_:
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0916:                 right_indexer[left_pos] = -1
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_19 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 916, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
 0917: 
+0918:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 918, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
 0919: 
 0920: 
+0921: def asof_join_forward(numeric_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_25asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_25asof_join_forward = {"asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_25asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_25asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    values[2] = __pyx_k__7;
    values[3] = __pyx_k__8;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_24asof_join_forward(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_24asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 921, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 921, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 921, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 921, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 921, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 921, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 921, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 921, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 921, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 921, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 921, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 921, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 921, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 921, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L98;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L96_break;
        }
        __pyx_L98:;
      }
    }
    __pyx_L96_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 921, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 921, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 921, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 921, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 921, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 921, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_13;
    __pyx_t_13 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_796__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults210, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults210, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults210, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults210, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_333asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_333asof_join_forward = {"__pyx_fuse_0asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_333asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_333asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults210 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults210, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_332asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_332asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int8_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_798__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults211, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults211, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults211, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults211, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_335asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_335asof_join_forward = {"__pyx_fuse_1asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_335asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_335asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults211 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults211, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_334asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_334asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int16_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_800__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults212, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults212, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults212, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults212, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_337asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_337asof_join_forward = {"__pyx_fuse_2asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_337asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_337asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults212 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults212, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_336asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_336asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_802__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults213, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults213, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults213, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults213, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_339asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_339asof_join_forward = {"__pyx_fuse_3asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_339asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_339asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults213 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults213, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_338asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_338asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_int64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_int64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_804__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults214, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults214, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults214, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults214, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_341asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_341asof_join_forward = {"__pyx_fuse_4asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_341asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_341asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults214 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults214, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_340asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_340asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint8_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint8_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_806__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults215, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults215, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults215, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults215, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_343asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_343asof_join_forward = {"__pyx_fuse_5asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_343asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_343asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults215 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults215, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_342asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_342asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint16_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint16_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_808__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults216, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults216, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults216, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults216, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_345asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_345asof_join_forward = {"__pyx_fuse_6asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_345asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_345asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults216 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults216, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_344asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_344asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_810__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults217, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults217, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults217, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults217, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_347asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_347asof_join_forward = {"__pyx_fuse_7asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_347asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_347asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults217 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults217, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_346asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_346asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_uint64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_uint64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_812__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults218, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults218, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults218, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults218, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_349asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_349asof_join_forward = {"__pyx_fuse_8asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_349asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_349asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults218 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults218, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_348asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_348asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float32_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float32_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_814__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_351asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_351asof_join_forward = {"__pyx_fuse_9asof_join_forward", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_351asof_join_forward, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_351asof_join_forward(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_forward (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults219 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, 1); __PYX_ERR(0, 921, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_forward") < 0)) __PYX_ERR(0, 921, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 921, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 922, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 923, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_forward", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 921, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_350asof_join_forward(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_350asof_join_forward(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_pos;
  Py_ssize_t __pyx_v_right_pos;
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_right_size;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  int __pyx_v_has_tolerance;
  __pyx_t_5numpy_float64_t __pyx_v_tolerance_;
  __pyx_t_5numpy_float64_t __pyx_v_diff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9asof_join_forward", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_7);
  __Pyx_XDECREF(__pyx_t_8);
  __Pyx_XDECREF(__pyx_t_9);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_forward", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_t_4 = PyTuple_New(2); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_4, 1, Py_None);
  __pyx_t_1 = 0;
/* … */
  __pyx_tuple__56 = PyTuple_Pack(13, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_pos, __pyx_n_s_right_pos, __pyx_n_s_left_size, __pyx_n_s_right_size, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_has_tolerance, __pyx_n_s_tolerance_2, __pyx_n_s_diff); if (unlikely(!__pyx_tuple__56)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__56);
  __Pyx_GIVEREF(__pyx_tuple__56);
/* … */
  __pyx_t_1 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_333asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults210), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults210, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults210, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_796__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int8_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_335asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults211), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults211, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults211, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_798__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int16_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_337asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults212), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults212, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults212, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_800__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int32_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_339asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults213), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults213, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults213, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_802__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_int64_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_341asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults214), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults214, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults214, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_804__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint8_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_343asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults215), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults215, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults215, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_806__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint16_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_345asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults216), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults216, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults216, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_808__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint32_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_347asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults217), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults217, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults217, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_810__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_uint64_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_349asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults218), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults218, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults218, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_812__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float32_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_351asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_3, sizeof(__pyx_defaults219), 1)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_t_3)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults219, __pyx_t_3)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_3, __pyx_pf_6pandas_5_libs_4join_814__defaults__);
  if (PyDict_SetItem(__pyx_t_1, __pyx_n_s_float64_t, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_t_3 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_25asof_join_forward, 0, __pyx_n_s_asof_join_forward, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__57)); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_3, __pyx_t_4);
  ((__pyx_FusedFunctionObject *) __pyx_t_3)->__signatures__ = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_forward, __pyx_t_3) < 0) __PYX_ERR(0, 921, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __pyx_codeobj__57 = (PyObject*)__Pyx_PyCode_New(4, 0, 13, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__56, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_forward, 921, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__57)) __PYX_ERR(0, 921, __pyx_L1_error)
 0922:                       numeric_t[:] right_values,
+0923:                       bint allow_exact_matches=True,
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
/* … */
  __pyx_t_1 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 923, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_k__7 = __pyx_t_1;
  __Pyx_GIVEREF(__pyx_t_1);
  __pyx_t_1 = 0;
  __Pyx_INCREF(Py_None);
  __pyx_k__8 = Py_None;
  __Pyx_GIVEREF(Py_None);
 0924:                       tolerance=None):
 0925: 
 0926:     cdef:
 0927:         Py_ssize_t left_pos, right_pos, left_size, right_size
 0928:         ndarray[intp_t] left_indexer, right_indexer
+0929:         bint has_tolerance = False
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
/* … */
  __pyx_v_has_tolerance = 0;
+0930:         numeric_t tolerance_ = 0
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0;
/* … */
  __pyx_v_tolerance_ = 0.0;
/* … */
  __pyx_v_tolerance_ = 0.0;
+0931:         numeric_t diff = 0
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0;
/* … */
  __pyx_v_diff = 0.0;
/* … */
  __pyx_v_diff = 0.0;
 0932: 
 0933:     # if we are using tolerance, set our objects
+0934:     if tolerance is not None:
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
/* … */
  __pyx_t_1 = (__pyx_v_tolerance != Py_None);
  __pyx_t_2 = (__pyx_t_1 != 0);
  if (__pyx_t_2) {
/* … */
  }
+0935:         has_tolerance = True
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
/* … */
    __pyx_v_has_tolerance = 1;
+0936:         tolerance_ = tolerance
    __pyx_t_3 = __Pyx_PyInt_As_npy_int8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_int64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_int64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint8(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint8)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint16(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint16)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint32(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __Pyx_PyInt_As_npy_uint64(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_uint64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsFloat(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float32)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
/* … */
    __pyx_t_3 = __pyx_PyFloat_AsDouble(__pyx_v_tolerance); if (unlikely((__pyx_t_3 == ((npy_float64)-1)) && PyErr_Occurred())) __PYX_ERR(0, 936, __pyx_L1_error)
    __pyx_v_tolerance_ = __pyx_t_3;
 0937: 
+0938:     left_size = len(left_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_4;
+0939:     right_size = len(right_values)
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
/* … */
  __pyx_t_4 = __Pyx_MemoryView_Len(__pyx_v_right_values); 
  __pyx_v_right_size = __pyx_t_4;
 0940: 
+0941:     left_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_empty); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_5);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_5);
  __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_GetModuleGlobalName(__pyx_t_8, __pyx_n_s_np); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __pyx_t_9 = __Pyx_PyObject_GetAttrStr(__pyx_t_8, __pyx_n_s_intp); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  if (PyDict_SetItem(__pyx_t_5, __pyx_n_s_dtype, __pyx_t_9) < 0) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_7, __pyx_t_5); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 941, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (!(likely(((__pyx_t_9) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_9, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 941, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_9);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_12, &__pyx_t_13, &__pyx_t_14);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_12); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_14);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_12, __pyx_t_13, __pyx_t_14);
      }
      __pyx_t_12 = __pyx_t_13 = __pyx_t_14 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 941, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_9);
  __pyx_t_9 = 0;
+0942:     right_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_9, __pyx_n_s_np); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_9, __pyx_n_s_empty); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  __pyx_t_9 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __pyx_t_7 = PyTuple_New(1); if (unlikely(!__pyx_t_7)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_7);
  __Pyx_GIVEREF(__pyx_t_9);
  PyTuple_SET_ITEM(__pyx_t_7, 0, __pyx_t_9);
  __pyx_t_9 = 0;
  __pyx_t_9 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_9)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_9);
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_8 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_intp); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (PyDict_SetItem(__pyx_t_9, __pyx_n_s_dtype, __pyx_t_8) < 0) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_8); __pyx_t_8 = 0;
  __pyx_t_8 = __Pyx_PyObject_Call(__pyx_t_5, __pyx_t_7, __pyx_t_9); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 942, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __Pyx_DECREF(__pyx_t_7); __pyx_t_7 = 0;
  __Pyx_DECREF(__pyx_t_9); __pyx_t_9 = 0;
  if (!(likely(((__pyx_t_8) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_8, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 942, __pyx_L1_error)
  __pyx_t_10 = ((PyArrayObject *)__pyx_t_8);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_11 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_10, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_11 < 0)) {
      PyErr_Fetch(&__pyx_t_14, &__pyx_t_13, &__pyx_t_12);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_14); Py_XDECREF(__pyx_t_13); Py_XDECREF(__pyx_t_12);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_14, __pyx_t_13, __pyx_t_12);
      }
      __pyx_t_14 = __pyx_t_13 = __pyx_t_12 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_11 < 0)) __PYX_ERR(0, 942, __pyx_L1_error)
  }
  __pyx_t_10 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_8);
  __pyx_t_8 = 0;
 0943: 
+0944:     right_pos = right_size - 1
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
  __pyx_v_right_pos = (__pyx_v_right_size - 1);
+0945:     for left_pos in range(left_size - 1, -1, -1):
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
/* … */
  for (__pyx_t_15 = (__pyx_v_left_size - 1); __pyx_t_15 > -1L; __pyx_t_15-=1) {
    __pyx_v_left_pos = __pyx_t_15;
 0946:         # restart right_pos if it went over in a previous iteration
+0947:         if right_pos == right_size:
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
/* … */
    __pyx_t_2 = ((__pyx_v_right_pos == __pyx_v_right_size) != 0);
    if (__pyx_t_2) {
/* … */
    }
+0948:             right_pos = right_size - 1
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
/* … */
      __pyx_v_right_pos = (__pyx_v_right_size - 1);
 0949: 
 0950:         # find first position in right whose value is greater than left's
+0951:         if allow_exact_matches:
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
/* … */
    __pyx_t_2 = (__pyx_v_allow_exact_matches != 0);
    if (__pyx_t_2) {
/* … */
      goto __pyx_L7;
    }
+0952:             while (right_pos >= 0 and
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
/* … */
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L10_bool_binop_done;
        }
+0953:                    right_values[right_pos] >= left_values[left_pos]):
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_16 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 953, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) >= (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L10_bool_binop_done:;
        if (!__pyx_t_2) break;
+0954:                 right_pos -= 1
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
 0955:         else:
+0956:             while (right_pos >= 0 and
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
/* … */
    /*else*/ {
      while (1) {
        __pyx_t_1 = ((__pyx_v_right_pos >= 0) != 0);
        if (__pyx_t_1) {
        } else {
          __pyx_t_2 = __pyx_t_1;
          goto __pyx_L14_bool_binop_done;
        }
+0957:                    right_values[right_pos] > left_values[left_pos]):
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
/* … */
        __pyx_t_17 = __pyx_v_right_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_v_right_values.shape[0];
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_16 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_16 < 0) {
          __pyx_t_16 += __pyx_v_left_values.shape[0];
          if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_16 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 957, __pyx_L1_error)
        }
        __pyx_t_1 = (((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_17 * __pyx_v_right_values.strides[0]) ))) > (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_16 * __pyx_v_left_values.strides[0]) )))) != 0);
        __pyx_t_2 = __pyx_t_1;
        __pyx_L14_bool_binop_done:;
        if (!__pyx_t_2) break;
+0958:                 right_pos -= 1
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
/* … */
        __pyx_v_right_pos = (__pyx_v_right_pos - 1);
      }
    }
    __pyx_L7:;
+0959:         right_pos += 1
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
/* … */
    __pyx_v_right_pos = (__pyx_v_right_pos + 1);
 0960: 
 0961:         # save positions as the desired index
+0962:         left_indexer[left_pos] = left_pos
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
/* … */
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 962, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = __pyx_v_left_pos;
+0963:         right_indexer[left_pos] = (right_pos
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
/* … */
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
/* … */
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
/* … */
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
/* … */
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
/* … */
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
/* … */
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
/* … */
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
/* … */
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
/* … */
      __pyx_t_18 = __pyx_v_right_pos;
    } else {
      __pyx_t_18 = -1;
    }
    __pyx_t_16 = __pyx_v_left_pos;
    __pyx_t_11 = -1;
    if (__pyx_t_16 < 0) {
      __pyx_t_16 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
    } else if (unlikely(__pyx_t_16 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
    if (unlikely(__pyx_t_11 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_11);
      __PYX_ERR(0, 963, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_16, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_18;
+0964:                                    if right_pos != right_size else -1)
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
/* … */
    if (((__pyx_v_right_pos != __pyx_v_right_size) != 0)) {
 0965: 
 0966:         # if needed, verify that tolerance is met
+0967:         if has_tolerance and right_pos != right_size:
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
/* … */
    __pyx_t_1 = (__pyx_v_has_tolerance != 0);
    if (__pyx_t_1) {
    } else {
      __pyx_t_2 = __pyx_t_1;
      goto __pyx_L17_bool_binop_done;
    }
    __pyx_t_1 = ((__pyx_v_right_pos != __pyx_v_right_size) != 0);
    __pyx_t_2 = __pyx_t_1;
    __pyx_L17_bool_binop_done:;
    if (__pyx_t_2) {
/* … */
    }
  }
+0968:             diff = right_values[right_pos] - left_values[left_pos]
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_16 = __pyx_v_right_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_16 < 0) {
        __pyx_t_16 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_16 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_16 >= __pyx_v_right_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_t_17 = __pyx_v_left_pos;
      __pyx_t_11 = -1;
      if (__pyx_t_17 < 0) {
        __pyx_t_17 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
      } else if (unlikely(__pyx_t_17 >= __pyx_v_left_values.shape[0])) __pyx_t_11 = 0;
      if (unlikely(__pyx_t_11 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_11);
        __PYX_ERR(0, 968, __pyx_L1_error)
      }
      __pyx_v_diff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_16 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_17 * __pyx_v_left_values.strides[0]) ))));
+0969:             if diff > tolerance_:
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
/* … */
      __pyx_t_2 = ((__pyx_v_diff > __pyx_v_tolerance_) != 0);
      if (__pyx_t_2) {
/* … */
      }
+0970:                 right_indexer[left_pos] = -1
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
/* … */
        __pyx_t_17 = __pyx_v_left_pos;
        __pyx_t_11 = -1;
        if (__pyx_t_17 < 0) {
          __pyx_t_17 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
          if (unlikely(__pyx_t_17 < 0)) __pyx_t_11 = 0;
        } else if (unlikely(__pyx_t_17 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_11 = 0;
        if (unlikely(__pyx_t_11 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_11);
          __PYX_ERR(0, 970, __pyx_L1_error)
        }
        *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_17, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = -1;
 0971: 
+0972:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_8 = PyTuple_New(2); if (unlikely(!__pyx_t_8)) __PYX_ERR(0, 972, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_8);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_8, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_8;
  __pyx_t_8 = 0;
  goto __pyx_L0;
 0973: 
 0974: 
+0975: def asof_join_nearest(numeric_t[:] left_values,
/* Python wrapper */
static PyObject *__pyx_pw_6pandas_5_libs_4join_27asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_mdef_6pandas_5_libs_4join_27asof_join_nearest = {"asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_pw_6pandas_5_libs_4join_27asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_pw_6pandas_5_libs_4join_27asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  PyObject *__pyx_v_signatures = 0;
  PyObject *__pyx_v_args = 0;
  PyObject *__pyx_v_kwargs = 0;
  CYTHON_UNUSED PyObject *__pyx_v_defaults = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fused_cpdef (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_signatures,&__pyx_n_s_args,&__pyx_n_s_kwargs,&__pyx_n_s_defaults,0};
    PyObject* values[4] = {0,0,0,0};
    values[2] = __pyx_k__9;
    values[3] = __pyx_k__10;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_signatures)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_args)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_kwargs);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_defaults);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "__pyx_fused_cpdef") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else if (PyTuple_GET_SIZE(__pyx_args) != 4) {
      goto __pyx_L5_argtuple_error;
    } else {
      values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
      values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
      values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
      values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
    }
    __pyx_v_signatures = values[0];
    __pyx_v_args = values[1];
    __pyx_v_kwargs = values[2];
    __pyx_v_defaults = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("__pyx_fused_cpdef", 1, 4, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_26asof_join_nearest(__pyx_self, __pyx_v_signatures, __pyx_v_args, __pyx_v_kwargs, __pyx_v_defaults);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_26asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, PyObject *__pyx_v_signatures, PyObject *__pyx_v_args, PyObject *__pyx_v_kwargs, CYTHON_UNUSED PyObject *__pyx_v_defaults) {
  PyObject *__pyx_v_dest_sig = NULL;
  Py_ssize_t __pyx_v_i;
  PyTypeObject *__pyx_v_ndarray = 0;
  __Pyx_memviewslice __pyx_v_memslice;
  Py_ssize_t __pyx_v_itemsize;
  int __pyx_v_dtype_signed;
  char __pyx_v_kind;
  int __pyx_v____pyx_int8_t_is_signed;
  int __pyx_v____pyx_int16_t_is_signed;
  int __pyx_v____pyx_int32_t_is_signed;
  int __pyx_v____pyx_int64_t_is_signed;
  int __pyx_v____pyx_uint8_t_is_signed;
  int __pyx_v____pyx_uint16_t_is_signed;
  int __pyx_v____pyx_uint32_t_is_signed;
  int __pyx_v____pyx_uint64_t_is_signed;
  PyObject *__pyx_v_arg = NULL;
  PyObject *__pyx_v_dtype = NULL;
  PyObject *__pyx_v_arg_base = NULL;
  PyObject *__pyx_v_candidates = NULL;
  PyObject *__pyx_v_sig = NULL;
  int __pyx_v_match_found;
  PyObject *__pyx_v_src_sig = NULL;
  PyObject *__pyx_v_dst_type = NULL;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest", 0);
  __Pyx_INCREF(__pyx_v_kwargs);
  __pyx_t_1 = PyList_New(1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyList_SET_ITEM(__pyx_t_1, 0, Py_None);
  __pyx_v_dest_sig = ((PyObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L4_bool_binop_done;
  }
  __pyx_t_4 = __Pyx_PyObject_IsTrue(__pyx_v_kwargs); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_3 = ((!__pyx_t_4) != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L4_bool_binop_done:;
  if (__pyx_t_2) {
    __Pyx_INCREF(Py_None);
    __Pyx_DECREF_SET(__pyx_v_kwargs, Py_None);
  }
  __pyx_t_1 = ((PyObject *)__Pyx_ImportNumPyArrayTypeIfAvailable()); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_v_ndarray = ((PyTypeObject*)__pyx_t_1);
  __pyx_t_1 = 0;
  __pyx_v_itemsize = -1L;
  __pyx_v____pyx_int8_t_is_signed = (!((((__pyx_t_5numpy_int8_t)-1L) > 0) != 0));
  __pyx_v____pyx_int16_t_is_signed = (!((((__pyx_t_5numpy_int16_t)-1L) > 0) != 0));
  __pyx_v____pyx_int32_t_is_signed = (!((((__pyx_t_5numpy_int32_t)-1L) > 0) != 0));
  __pyx_v____pyx_int64_t_is_signed = (!((((__pyx_t_5numpy_int64_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint8_t_is_signed = (!((((__pyx_t_5numpy_uint8_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint16_t_is_signed = (!((((__pyx_t_5numpy_uint16_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint32_t_is_signed = (!((((__pyx_t_5numpy_uint32_t)-1L) > 0) != 0));
  __pyx_v____pyx_uint64_t_is_signed = (!((((__pyx_t_5numpy_uint64_t)-1L) > 0) != 0));
  if (unlikely(__pyx_v_args == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
    __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_2 = ((0 < __pyx_t_5) != 0);
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 975, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_GetItemInt_Tuple(((PyObject*)__pyx_v_args), 0, long, 1, __Pyx_PyInt_From_long, 0, 0, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  __pyx_t_3 = (__pyx_v_kwargs != Py_None);
  __pyx_t_4 = (__pyx_t_3 != 0);
  if (__pyx_t_4) {
  } else {
    __pyx_t_2 = __pyx_t_4;
    goto __pyx_L7_bool_binop_done;
  }
  if (unlikely(__pyx_v_kwargs == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_4 = (__Pyx_PyDict_ContainsTF(__pyx_n_s_left_values, ((PyObject*)__pyx_v_kwargs), Py_EQ)); if (unlikely(__pyx_t_4 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_3 = (__pyx_t_4 != 0);
  __pyx_t_2 = __pyx_t_3;
  __pyx_L7_bool_binop_done:;
  if (__pyx_t_2) {
    if (unlikely(__pyx_v_kwargs == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 975, __pyx_L1_error)
    }
    __pyx_t_1 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_kwargs), __pyx_n_s_left_values); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_v_arg = __pyx_t_1;
    __pyx_t_1 = 0;
    goto __pyx_L6;
  }
  /*else*/ {
    if (unlikely(__pyx_v_args == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "object of type 'NoneType' has no len()");
      __PYX_ERR(0, 975, __pyx_L1_error)
    }
    __pyx_t_5 = PyTuple_GET_SIZE(((PyObject*)__pyx_v_args)); if (unlikely(__pyx_t_5 == ((Py_ssize_t)-1))) __PYX_ERR(0, 975, __pyx_L1_error)
    __pyx_t_1 = PyInt_FromSsize_t(__pyx_t_5); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __pyx_t_6 = PyTuple_New(3); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_int_2);
    __Pyx_GIVEREF(__pyx_int_2);
    PyTuple_SET_ITEM(__pyx_t_6, 0, __pyx_int_2);
    __Pyx_INCREF(__pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_n_s_s);
    PyTuple_SET_ITEM(__pyx_t_6, 1, __pyx_n_s_s);
    __Pyx_GIVEREF(__pyx_t_1);
    PyTuple_SET_ITEM(__pyx_t_6, 2, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_1 = __Pyx_PyString_Format(__pyx_kp_s_Expected_at_least_d_argument_s_g, __pyx_t_6); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_t_6 = __Pyx_PyObject_CallOneArg(__pyx_builtin_TypeError, __pyx_t_1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_L6:;
  while (1) {
    __pyx_t_2 = (__pyx_v_ndarray != ((PyTypeObject*)Py_None));
    __pyx_t_3 = (__pyx_t_2 != 0);
    if (__pyx_t_3) {
      __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg, __pyx_v_ndarray); 
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_dtype = __pyx_t_6;
        __pyx_t_6 = 0;
        goto __pyx_L12;
      }
      __pyx_t_2 = __pyx_memoryview_check(__pyx_v_arg); 
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_base); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_v_arg_base = __pyx_t_6;
        __pyx_t_6 = 0;
        __pyx_t_3 = __Pyx_TypeCheck(__pyx_v_arg_base, __pyx_v_ndarray); 
        __pyx_t_2 = (__pyx_t_3 != 0);
        if (__pyx_t_2) {
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg_base, __pyx_n_s_dtype); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_v_dtype = __pyx_t_6;
          __pyx_t_6 = 0;
          goto __pyx_L13;
        }
        /*else*/ {
          __Pyx_INCREF(Py_None);
          __pyx_v_dtype = Py_None;
        }
        __pyx_L13:;
        goto __pyx_L12;
      }
      /*else*/ {
        __Pyx_INCREF(Py_None);
        __pyx_v_dtype = Py_None;
      }
      __pyx_L12:;
      __pyx_v_itemsize = -1L;
      __pyx_t_2 = (__pyx_v_dtype != Py_None);
      __pyx_t_3 = (__pyx_t_2 != 0);
      if (__pyx_t_3) {
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_itemsize); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_itemsize = __pyx_t_5;
        __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_dtype, __pyx_n_s_kind); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_6);
        __pyx_t_7 = __Pyx_PyObject_Ord(__pyx_t_6); if (unlikely(__pyx_t_7 == ((long)(long)(Py_UCS4)-1))) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
        __pyx_v_kind = __pyx_t_7;
        __pyx_v_dtype_signed = (__pyx_v_kind == 'i');
        switch (__pyx_v_kind) {
          case 'i':
          case 'u':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L16_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L16_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L20_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L20_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L24_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L24_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_int64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L28_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_int64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L28_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint8_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L32_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint8_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L32_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint16_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L36_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint16_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L36_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L40_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint32_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L40_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_uint64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L44_bool_binop_done;
          }
          __pyx_t_2 = ((!((__pyx_v____pyx_uint64_t_is_signed ^ __pyx_v_dtype_signed) != 0)) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L44_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'f':
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float32_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L48_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L48_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          __pyx_t_2 = (((sizeof(__pyx_t_5numpy_float64_t)) == __pyx_v_itemsize) != 0);
          if (__pyx_t_2) {
          } else {
            __pyx_t_3 = __pyx_t_2;
            goto __pyx_L51_bool_binop_done;
          }
          __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_v_arg, __pyx_n_s_ndim); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_GOTREF(__pyx_t_6);
          __pyx_t_5 = __Pyx_PyIndex_AsSsize_t(__pyx_t_6); if (unlikely((__pyx_t_5 == (Py_ssize_t)-1) && PyErr_Occurred())) __PYX_ERR(0, 975, __pyx_L1_error)
          __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
          __pyx_t_2 = ((((Py_ssize_t)__pyx_t_5) == 1) != 0);
          __pyx_t_3 = __pyx_t_2;
          __pyx_L51_bool_binop_done:;
          if (__pyx_t_3) {
            if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
            goto __pyx_L10_break;
          }
          break;
          case 'c':
          break;
          case 'O':
          break;
          default: break;
        }
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L54_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L54_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L58_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L58_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L62_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L62_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L66_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_int64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L66_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_int64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L70_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint8_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L70_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint8_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L74_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint16_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L74_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint16_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L78_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L78_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L82_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_uint64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L82_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_uint64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L86_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float32_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L86_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float32_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    __pyx_t_2 = ((__pyx_v_itemsize == -1L) != 0);
    if (!__pyx_t_2) {
    } else {
      __pyx_t_3 = __pyx_t_2;
      goto __pyx_L90_bool_binop_done;
    }
    __pyx_t_2 = ((__pyx_v_itemsize == (sizeof(__pyx_t_5numpy_float64_t))) != 0);
    __pyx_t_3 = __pyx_t_2;
    __pyx_L90_bool_binop_done:;
    if (__pyx_t_3) {
      __pyx_t_8 = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(__pyx_v_arg, 0); 
      __pyx_v_memslice = __pyx_t_8;
      __pyx_t_3 = (__pyx_v_memslice.memview != 0);
      if (__pyx_t_3) {
        __PYX_XDEC_MEMVIEW((&__pyx_v_memslice), 1); 
        if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, __pyx_n_s_float64_t, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        goto __pyx_L10_break;
      }
      /*else*/ {
        PyErr_Clear(); 
      }
    }
    if (unlikely(__Pyx_SetItemInt(__pyx_v_dest_sig, 0, Py_None, long, 1, __Pyx_PyInt_From_long, 1, 0, 1) < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
    goto __pyx_L10_break;
  }
  __pyx_L10_break:;
  __pyx_t_6 = PyList_New(0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_v_candidates = ((PyObject*)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_5 = 0;
  if (unlikely(__pyx_v_signatures == Py_None)) {
    PyErr_SetString(PyExc_TypeError, "'NoneType' object is not iterable");
    __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_1 = __Pyx_dict_iterator(((PyObject*)__pyx_v_signatures), 1, ((PyObject *)NULL), (&__pyx_t_9), (&__pyx_t_10)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __pyx_t_6 = __pyx_t_1;
  __pyx_t_1 = 0;
  while (1) {
    __pyx_t_11 = __Pyx_dict_iter_next(__pyx_t_6, __pyx_t_9, &__pyx_t_5, &__pyx_t_1, NULL, NULL, __pyx_t_10);
    if (unlikely(__pyx_t_11 == 0)) break;
    if (unlikely(__pyx_t_11 == -1)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_XDECREF_SET(__pyx_v_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_v_match_found = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_v_sig, __pyx_n_s_strip); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_14 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_14 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_14)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_14);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_12 = (__pyx_t_14) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_14, __pyx_kp_s_) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s_);
    __Pyx_XDECREF(__pyx_t_14); __pyx_t_14 = 0;
    if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __pyx_t_13 = __Pyx_PyObject_GetAttrStr(__pyx_t_12, __pyx_n_s_split); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
    __pyx_t_12 = NULL;
    if (CYTHON_UNPACK_METHODS && likely(PyMethod_Check(__pyx_t_13))) {
      __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_13);
      if (likely(__pyx_t_12)) {
        PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
        __Pyx_INCREF(__pyx_t_12);
        __Pyx_INCREF(function);
        __Pyx_DECREF_SET(__pyx_t_13, function);
      }
    }
    __pyx_t_1 = (__pyx_t_12) ? __Pyx_PyObject_Call2Args(__pyx_t_13, __pyx_t_12, __pyx_kp_s__2) : __Pyx_PyObject_CallOneArg(__pyx_t_13, __pyx_kp_s__2);
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_1);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
    __Pyx_XDECREF_SET(__pyx_v_src_sig, __pyx_t_1);
    __pyx_t_1 = 0;
    __pyx_t_15 = PyList_GET_SIZE(__pyx_v_dest_sig); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 975, __pyx_L1_error)
    __pyx_t_16 = __pyx_t_15;
    for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
      __pyx_v_i = __pyx_t_17;
      __pyx_t_1 = __Pyx_GetItemInt_List(__pyx_v_dest_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 1, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
      __Pyx_GOTREF(__pyx_t_1);
      __Pyx_XDECREF_SET(__pyx_v_dst_type, __pyx_t_1);
      __pyx_t_1 = 0;
      __pyx_t_3 = (__pyx_v_dst_type != Py_None);
      __pyx_t_2 = (__pyx_t_3 != 0);
      if (__pyx_t_2) {
        __pyx_t_1 = __Pyx_GetItemInt(__pyx_v_src_sig, __pyx_v_i, Py_ssize_t, 1, PyInt_FromSsize_t, 0, 1, 1); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_GOTREF(__pyx_t_1);
        __pyx_t_13 = PyObject_RichCompare(__pyx_t_1, __pyx_v_dst_type, Py_EQ); __Pyx_XGOTREF(__pyx_t_13); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
        __pyx_t_2 = __Pyx_PyObject_IsTrue(__pyx_t_13); if (unlikely(__pyx_t_2 < 0)) __PYX_ERR(0, 975, __pyx_L1_error)
        __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
        if (__pyx_t_2) {
          __pyx_v_match_found = 1;
          goto __pyx_L98;
        }
        /*else*/ {
          __pyx_v_match_found = 0;
          goto __pyx_L96_break;
        }
        __pyx_L98:;
      }
    }
    __pyx_L96_break:;
    __pyx_t_2 = (__pyx_v_match_found != 0);
    if (__pyx_t_2) {
      __pyx_t_18 = __Pyx_PyList_Append(__pyx_v_candidates, __pyx_v_sig); if (unlikely(__pyx_t_18 == ((int)-1))) __PYX_ERR(0, 975, __pyx_L1_error)
    }
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_2 = (PyList_GET_SIZE(__pyx_v_candidates) != 0);
  __pyx_t_3 = ((!__pyx_t_2) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__3, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 975, __pyx_L1_error)
  }
  __pyx_t_9 = PyList_GET_SIZE(__pyx_v_candidates); if (unlikely(__pyx_t_9 == ((Py_ssize_t)-1))) __PYX_ERR(0, 975, __pyx_L1_error)
  __pyx_t_3 = ((__pyx_t_9 > 1) != 0);
  if (__pyx_t_3) {
    __pyx_t_6 = __Pyx_PyObject_Call(__pyx_builtin_TypeError, __pyx_tuple__4, NULL); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __Pyx_Raise(__pyx_t_6, 0, 0, 0);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __PYX_ERR(0, 975, __pyx_L1_error)
  }
  /*else*/ {
    __Pyx_XDECREF(__pyx_r);
    if (unlikely(__pyx_v_signatures == Py_None)) {
      PyErr_SetString(PyExc_TypeError, "'NoneType' object is not subscriptable");
      __PYX_ERR(0, 975, __pyx_L1_error)
    }
    __pyx_t_6 = __Pyx_GetItemInt_List(__pyx_v_candidates, 0, long, 1, __Pyx_PyInt_From_long, 1, 0, 1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = __Pyx_PyDict_GetItem(((PyObject*)__pyx_v_signatures), __pyx_t_6); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 975, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __pyx_r = __pyx_t_13;
    __pyx_t_13 = 0;
    goto __pyx_L0;
  }

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  __Pyx_XDECREF(__pyx_t_14);
  __Pyx_AddTraceback("pandas._libs.join.__pyx_fused_cpdef", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XDECREF(__pyx_v_dest_sig);
  __Pyx_XDECREF(__pyx_v_ndarray);
  __Pyx_XDECREF(__pyx_v_arg);
  __Pyx_XDECREF(__pyx_v_dtype);
  __Pyx_XDECREF(__pyx_v_arg_base);
  __Pyx_XDECREF(__pyx_v_candidates);
  __Pyx_XDECREF(__pyx_v_sig);
  __Pyx_XDECREF(__pyx_v_src_sig);
  __Pyx_XDECREF(__pyx_v_dst_type);
  __Pyx_XDECREF(__pyx_v_kwargs);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_836__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults230, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults230, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults230, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults230, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_355asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_355asof_join_nearest = {"__pyx_fuse_0asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_355asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_0__pyx_pw_6pandas_5_libs_4join_355asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults230 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults230, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_354asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_354asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int8_t __pyx_v_bdiff;
  __pyx_t_5numpy_int8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_0asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_838__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults231, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults231, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults231, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults231, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_357asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_357asof_join_nearest = {"__pyx_fuse_1asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_357asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_1__pyx_pw_6pandas_5_libs_4join_357asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults231 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults231, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_356asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_356asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int16_t __pyx_v_bdiff;
  __pyx_t_5numpy_int16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_1asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_840__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults232, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults232, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults232, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults232, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_359asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_359asof_join_nearest = {"__pyx_fuse_2asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_359asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_2__pyx_pw_6pandas_5_libs_4join_359asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults232 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults232, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_358asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_358asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int32_t __pyx_v_bdiff;
  __pyx_t_5numpy_int32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_2asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_842__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults233, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults233, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults233, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults233, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_361asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_361asof_join_nearest = {"__pyx_fuse_3asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_361asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_3__pyx_pw_6pandas_5_libs_4join_361asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults233 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults233, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_int64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_360asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_360asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_int64_t __pyx_v_bdiff;
  __pyx_t_5numpy_int64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_3asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_844__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults234, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults234, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults234, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults234, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_363asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_363asof_join_nearest = {"__pyx_fuse_4asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_363asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_4__pyx_pw_6pandas_5_libs_4join_363asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults234 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults234, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint8_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_362asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_362asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint8_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint8_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_4asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_846__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults235, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults235, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults235, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults235, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_365asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_365asof_join_nearest = {"__pyx_fuse_5asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_365asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_5__pyx_pw_6pandas_5_libs_4join_365asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults235 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults235, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint16_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_364asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_364asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint16_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint16_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_5asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_848__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults236, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults236, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults236, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults236, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_367asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_367asof_join_nearest = {"__pyx_fuse_6asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_367asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_6__pyx_pw_6pandas_5_libs_4join_367asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults236 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults236, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_366asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_366asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint32_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_6asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_850__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults237, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults237, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults237, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults237, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_369asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_369asof_join_nearest = {"__pyx_fuse_7asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_369asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_7__pyx_pw_6pandas_5_libs_4join_369asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults237 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults237, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_uint64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_368asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_368asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_uint64_t __pyx_v_bdiff;
  __pyx_t_5numpy_uint64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_7asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_852__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults238, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults238, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults238, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults238, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_371asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_371asof_join_nearest = {"__pyx_fuse_8asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_371asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_8__pyx_pw_6pandas_5_libs_4join_371asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults238 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults238, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float32_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_370asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_370asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float32_t __pyx_v_bdiff;
  __pyx_t_5numpy_float32_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_8asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_854__defaults__(CYTHON_UNUSED PyObject *__pyx_self) {
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__defaults__", 0);
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_1 = __Pyx_PyBool_FromLong(__Pyx_CyFunction_Defaults(__pyx_defaults239, __pyx_self)->__pyx_arg_allow_exact_matches); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __pyx_t_2 = PyTuple_New(2); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GIVEREF(__pyx_t_1);
  PyTuple_SET_ITEM(__pyx_t_2, 0, __pyx_t_1);
  __Pyx_INCREF(__Pyx_CyFunction_Defaults(__pyx_defaults239, __pyx_self)->__pyx_arg_tolerance);
  __Pyx_GIVEREF(__Pyx_CyFunction_Defaults(__pyx_defaults239, __pyx_self)->__pyx_arg_tolerance);
  PyTuple_SET_ITEM(__pyx_t_2, 1, __Pyx_CyFunction_Defaults(__pyx_defaults239, __pyx_self)->__pyx_arg_tolerance);
  __pyx_t_1 = 0;
  __pyx_t_1 = PyTuple_New(2); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_1, 0, __pyx_t_2);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_1, 1, Py_None);
  __pyx_t_2 = 0;
  __pyx_r = __pyx_t_1;
  __pyx_t_1 = 0;
  goto __pyx_L0;

  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_1);
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_AddTraceback("pandas._libs.join.__defaults__", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  __pyx_L0:;
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

/* Python wrapper */
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_373asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds); /*proto*/
static PyMethodDef __pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_373asof_join_nearest = {"__pyx_fuse_9asof_join_nearest", (PyCFunction)(void*)(PyCFunctionWithKeywords)__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_373asof_join_nearest, METH_VARARGS|METH_KEYWORDS, 0};
static PyObject *__pyx_fuse_9__pyx_pw_6pandas_5_libs_4join_373asof_join_nearest(PyObject *__pyx_self, PyObject *__pyx_args, PyObject *__pyx_kwds) {
  __Pyx_memviewslice __pyx_v_left_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  __Pyx_memviewslice __pyx_v_right_values = { 0, 0, { 0 }, { 0 }, { 0 } };
  int __pyx_v_allow_exact_matches;
  PyObject *__pyx_v_tolerance = 0;
  PyObject *__pyx_r = 0;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("asof_join_nearest (wrapper)", 0);
  {
    static PyObject **__pyx_pyargnames[] = {&__pyx_n_s_left_values,&__pyx_n_s_right_values,&__pyx_n_s_allow_exact_matches,&__pyx_n_s_tolerance,0};
    PyObject* values[4] = {0,0,0,0};
    __pyx_defaults239 *__pyx_dynamic_args = __Pyx_CyFunction_Defaults(__pyx_defaults239, __pyx_self);
    values[3] = __pyx_dynamic_args->__pyx_arg_tolerance;
    if (unlikely(__pyx_kwds)) {
      Py_ssize_t kw_args;
      const Py_ssize_t pos_args = PyTuple_GET_SIZE(__pyx_args);
      switch (pos_args) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        CYTHON_FALLTHROUGH;
        case  1: values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        CYTHON_FALLTHROUGH;
        case  0: break;
        default: goto __pyx_L5_argtuple_error;
      }
      kw_args = PyDict_Size(__pyx_kwds);
      switch (pos_args) {
        case  0:
        if (likely((values[0] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_left_values)) != 0)) kw_args--;
        else goto __pyx_L5_argtuple_error;
        CYTHON_FALLTHROUGH;
        case  1:
        if (likely((values[1] = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_right_values)) != 0)) kw_args--;
        else {
          __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, 1); __PYX_ERR(0, 975, __pyx_L3_error)
        }
        CYTHON_FALLTHROUGH;
        case  2:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_allow_exact_matches);
          if (value) { values[2] = value; kw_args--; }
        }
        CYTHON_FALLTHROUGH;
        case  3:
        if (kw_args > 0) {
          PyObject* value = __Pyx_PyDict_GetItemStr(__pyx_kwds, __pyx_n_s_tolerance);
          if (value) { values[3] = value; kw_args--; }
        }
      }
      if (unlikely(kw_args > 0)) {
        if (unlikely(__Pyx_ParseOptionalKeywords(__pyx_kwds, __pyx_pyargnames, 0, values, pos_args, "asof_join_nearest") < 0)) __PYX_ERR(0, 975, __pyx_L3_error)
      }
    } else {
      switch (PyTuple_GET_SIZE(__pyx_args)) {
        case  4: values[3] = PyTuple_GET_ITEM(__pyx_args, 3);
        CYTHON_FALLTHROUGH;
        case  3: values[2] = PyTuple_GET_ITEM(__pyx_args, 2);
        CYTHON_FALLTHROUGH;
        case  2: values[1] = PyTuple_GET_ITEM(__pyx_args, 1);
        values[0] = PyTuple_GET_ITEM(__pyx_args, 0);
        break;
        default: goto __pyx_L5_argtuple_error;
      }
    }
    __pyx_v_left_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[0], PyBUF_WRITABLE); if (unlikely(!__pyx_v_left_values.memview)) __PYX_ERR(0, 975, __pyx_L3_error)
    __pyx_v_right_values = __Pyx_PyObject_to_MemoryviewSlice_ds_nn___pyx_t_5numpy_float64_t(values[1], PyBUF_WRITABLE); if (unlikely(!__pyx_v_right_values.memview)) __PYX_ERR(0, 976, __pyx_L3_error)
    if (values[2]) {
      __pyx_v_allow_exact_matches = __Pyx_PyObject_IsTrue(values[2]); if (unlikely((__pyx_v_allow_exact_matches == (int)-1) && PyErr_Occurred())) __PYX_ERR(0, 977, __pyx_L3_error)
    } else {
      __pyx_v_allow_exact_matches = __pyx_dynamic_args->__pyx_arg_allow_exact_matches;
    }
    __pyx_v_tolerance = values[3];
  }
  goto __pyx_L4_argument_unpacking_done;
  __pyx_L5_argtuple_error:;
  __Pyx_RaiseArgtupleInvalid("asof_join_nearest", 0, 2, 4, PyTuple_GET_SIZE(__pyx_args)); __PYX_ERR(0, 975, __pyx_L3_error)
  __pyx_L3_error:;
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __Pyx_RefNannyFinishContext();
  return NULL;
  __pyx_L4_argument_unpacking_done:;
  __pyx_r = __pyx_pf_6pandas_5_libs_4join_372asof_join_nearest(__pyx_self, __pyx_v_left_values, __pyx_v_right_values, __pyx_v_allow_exact_matches, __pyx_v_tolerance);
  int __pyx_lineno = 0;
  const char *__pyx_filename = NULL;
  int __pyx_clineno = 0;

  /* function exit code */
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}

static PyObject *__pyx_pf_6pandas_5_libs_4join_372asof_join_nearest(CYTHON_UNUSED PyObject *__pyx_self, __Pyx_memviewslice __pyx_v_left_values, __Pyx_memviewslice __pyx_v_right_values, int __pyx_v_allow_exact_matches, PyObject *__pyx_v_tolerance) {
  Py_ssize_t __pyx_v_left_size;
  Py_ssize_t __pyx_v_i;
  PyArrayObject *__pyx_v_left_indexer = 0;
  PyArrayObject *__pyx_v_right_indexer = 0;
  PyArrayObject *__pyx_v_bli = 0;
  PyArrayObject *__pyx_v_bri = 0;
  PyArrayObject *__pyx_v_fli = 0;
  PyArrayObject *__pyx_v_fri = 0;
  __pyx_t_5numpy_float64_t __pyx_v_bdiff;
  __pyx_t_5numpy_float64_t __pyx_v_fdiff;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bli;
  __Pyx_Buffer __pyx_pybuffer_bli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_bri;
  __Pyx_Buffer __pyx_pybuffer_bri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fli;
  __Pyx_Buffer __pyx_pybuffer_fli;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_fri;
  __Pyx_Buffer __pyx_pybuffer_fri;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_left_indexer;
  __Pyx_Buffer __pyx_pybuffer_left_indexer;
  __Pyx_LocalBuf_ND __pyx_pybuffernd_right_indexer;
  __Pyx_Buffer __pyx_pybuffer_right_indexer;
  PyObject *__pyx_r = NULL;
  __Pyx_RefNannyDeclarations
  __Pyx_RefNannySetupContext("__pyx_fuse_9asof_join_nearest", 0);
  __pyx_pybuffer_left_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_left_indexer.refcount = 0;
  __pyx_pybuffernd_left_indexer.data = NULL;
  __pyx_pybuffernd_left_indexer.rcbuffer = &__pyx_pybuffer_left_indexer;
  __pyx_pybuffer_right_indexer.pybuffer.buf = NULL;
  __pyx_pybuffer_right_indexer.refcount = 0;
  __pyx_pybuffernd_right_indexer.data = NULL;
  __pyx_pybuffernd_right_indexer.rcbuffer = &__pyx_pybuffer_right_indexer;
  __pyx_pybuffer_bli.pybuffer.buf = NULL;
  __pyx_pybuffer_bli.refcount = 0;
  __pyx_pybuffernd_bli.data = NULL;
  __pyx_pybuffernd_bli.rcbuffer = &__pyx_pybuffer_bli;
  __pyx_pybuffer_bri.pybuffer.buf = NULL;
  __pyx_pybuffer_bri.refcount = 0;
  __pyx_pybuffernd_bri.data = NULL;
  __pyx_pybuffernd_bri.rcbuffer = &__pyx_pybuffer_bri;
  __pyx_pybuffer_fli.pybuffer.buf = NULL;
  __pyx_pybuffer_fli.refcount = 0;
  __pyx_pybuffernd_fli.data = NULL;
  __pyx_pybuffernd_fli.rcbuffer = &__pyx_pybuffer_fli;
  __pyx_pybuffer_fri.pybuffer.buf = NULL;
  __pyx_pybuffer_fri.refcount = 0;
  __pyx_pybuffernd_fri.data = NULL;
  __pyx_pybuffernd_fri.rcbuffer = &__pyx_pybuffer_fri;
/* … */
  /* function exit code */
  __pyx_L1_error:;
  __Pyx_XDECREF(__pyx_t_2);
  __Pyx_XDECREF(__pyx_t_3);
  __Pyx_XDECREF(__pyx_t_4);
  __Pyx_XDECREF(__pyx_t_5);
  __Pyx_XDECREF(__pyx_t_6);
  __Pyx_XDECREF(__pyx_t_12);
  __Pyx_XDECREF(__pyx_t_13);
  { PyObject *__pyx_type, *__pyx_value, *__pyx_tb;
    __Pyx_PyThreadState_declare
    __Pyx_PyThreadState_assign
    __Pyx_ErrFetch(&__pyx_type, &__pyx_value, &__pyx_tb);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __Pyx_ErrRestore(__pyx_type, __pyx_value, __pyx_tb);}
  __Pyx_AddTraceback("pandas._libs.join.asof_join_nearest", __pyx_clineno, __pyx_lineno, __pyx_filename);
  __pyx_r = NULL;
  goto __pyx_L2;
  __pyx_L0:;
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
  __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
  __pyx_L2:;
  __Pyx_XDECREF((PyObject *)__pyx_v_left_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_right_indexer);
  __Pyx_XDECREF((PyObject *)__pyx_v_bli);
  __Pyx_XDECREF((PyObject *)__pyx_v_bri);
  __Pyx_XDECREF((PyObject *)__pyx_v_fli);
  __Pyx_XDECREF((PyObject *)__pyx_v_fri);
  __PYX_XDEC_MEMVIEW(&__pyx_v_left_values, 1);
  __PYX_XDEC_MEMVIEW(&__pyx_v_right_values, 1);
  __Pyx_XGIVEREF(__pyx_r);
  __Pyx_RefNannyFinishContext();
  return __pyx_r;
}
/* … */
  __pyx_t_3 = PyTuple_New(2); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_GIVEREF(__pyx_t_4);
  PyTuple_SET_ITEM(__pyx_t_3, 0, __pyx_t_4);
  __Pyx_INCREF(Py_None);
  __Pyx_GIVEREF(Py_None);
  PyTuple_SET_ITEM(__pyx_t_3, 1, Py_None);
  __pyx_t_4 = 0;
/* … */
  __pyx_tuple__58 = PyTuple_Pack(14, __pyx_n_s_left_values, __pyx_n_s_right_values, __pyx_n_s_allow_exact_matches, __pyx_n_s_tolerance, __pyx_n_s_left_size, __pyx_n_s_i, __pyx_n_s_left_indexer, __pyx_n_s_right_indexer, __pyx_n_s_bli, __pyx_n_s_bri, __pyx_n_s_fli, __pyx_n_s_fri, __pyx_n_s_bdiff, __pyx_n_s_fdiff); if (unlikely(!__pyx_tuple__58)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_tuple__58);
  __Pyx_GIVEREF(__pyx_tuple__58);
/* … */
  __pyx_t_4 = __Pyx_PyDict_NewPresized(10); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_0__pyx_mdef_6pandas_5_libs_4join_355asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults230), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults230, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults230, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_836__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_int8_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_1__pyx_mdef_6pandas_5_libs_4join_357asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults231), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults231, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults231, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_838__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_int16_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_2__pyx_mdef_6pandas_5_libs_4join_359asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults232), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults232, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults232, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_840__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_int32_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_3__pyx_mdef_6pandas_5_libs_4join_361asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults233), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults233, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults233, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_842__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_int64_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_4__pyx_mdef_6pandas_5_libs_4join_363asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults234), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults234, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults234, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_844__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_uint8_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_5__pyx_mdef_6pandas_5_libs_4join_365asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults235), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults235, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults235, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_846__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_uint16_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_6__pyx_mdef_6pandas_5_libs_4join_367asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults236), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults236, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults236, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_848__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_uint32_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_7__pyx_mdef_6pandas_5_libs_4join_369asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults237), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults237, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults237, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_850__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_uint64_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_8__pyx_mdef_6pandas_5_libs_4join_371asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults238), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults238, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults238, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_852__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float32_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_fuse_9__pyx_mdef_6pandas_5_libs_4join_373asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  if (!__Pyx_CyFunction_InitDefaults(__pyx_t_1, sizeof(__pyx_defaults239), 1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_INCREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults239, __pyx_t_1)->__pyx_arg_tolerance = Py_None;
  __Pyx_GIVEREF(Py_None);
  __Pyx_CyFunction_Defaults(__pyx_defaults239, __pyx_t_1)->__pyx_arg_allow_exact_matches = 1;
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  __Pyx_CyFunction_SetDefaultsGetter(__pyx_t_1, __pyx_pf_6pandas_5_libs_4join_854__defaults__);
  if (PyDict_SetItem(__pyx_t_4, __pyx_n_s_float64_t, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __pyx_t_1 = __pyx_FusedFunction_New(&__pyx_mdef_6pandas_5_libs_4join_27asof_join_nearest, 0, __pyx_n_s_asof_join_nearest, NULL, __pyx_n_s_pandas__libs_join, __pyx_d, ((PyObject *)__pyx_codeobj__59)); if (unlikely(!__pyx_t_1)) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_1);
  __Pyx_CyFunction_SetDefaultsTuple(__pyx_t_1, __pyx_t_3);
  ((__pyx_FusedFunctionObject *) __pyx_t_1)->__signatures__ = __pyx_t_4;
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  if (PyDict_SetItem(__pyx_d, __pyx_n_s_asof_join_nearest, __pyx_t_1) < 0) __PYX_ERR(0, 975, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_1); __pyx_t_1 = 0;
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __pyx_codeobj__59 = (PyObject*)__Pyx_PyCode_New(4, 0, 14, 0, CO_OPTIMIZED|CO_NEWLOCALS, __pyx_empty_bytes, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_tuple__58, __pyx_empty_tuple, __pyx_empty_tuple, __pyx_kp_s_pandas__libs_join_pyx, __pyx_n_s_asof_join_nearest, 975, __pyx_empty_bytes); if (unlikely(!__pyx_codeobj__59)) __PYX_ERR(0, 975, __pyx_L1_error)
 0976:                       numeric_t[:] right_values,
+0977:                       bint allow_exact_matches=True,
  __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
/* … */
  __pyx_t_4 = __Pyx_PyBool_FromLong(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 977, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_k__9 = __pyx_t_4;
  __Pyx_GIVEREF(__pyx_t_4);
  __pyx_t_4 = 0;
  __Pyx_INCREF(Py_None);
  __pyx_k__10 = Py_None;
  __Pyx_GIVEREF(Py_None);
 0978:                       tolerance=None):
 0979: 
 0980:     cdef:
 0981:         Py_ssize_t left_size, i
 0982:         ndarray[intp_t] left_indexer, right_indexer, bli, bri, fli, fri
 0983:         numeric_t bdiff, fdiff
 0984: 
+0985:     left_size = len(left_values)
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
/* … */
  __pyx_t_1 = __Pyx_MemoryView_Len(__pyx_v_left_values); 
  __pyx_v_left_size = __pyx_t_1;
 0986: 
+0987:     left_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_2, __pyx_n_s_np); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_3 = __Pyx_PyObject_GetAttrStr(__pyx_t_2, __pyx_n_s_empty); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __pyx_t_2 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_2);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_2);
  __pyx_t_2 = 0;
  __pyx_t_2 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_GetModuleGlobalName(__pyx_t_5, __pyx_n_s_np); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __pyx_t_6 = __Pyx_PyObject_GetAttrStr(__pyx_t_5, __pyx_n_s_intp); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  if (PyDict_SetItem(__pyx_t_2, __pyx_n_s_dtype, __pyx_t_6) < 0) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyObject_Call(__pyx_t_3, __pyx_t_4, __pyx_t_2); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 987, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 987, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_left_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_left_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_left_indexer.diminfo[0].strides = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_left_indexer.diminfo[0].shape = __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 987, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_left_indexer = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
+0988:     right_indexer = np.empty(left_size, dtype=np.intp)
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_np); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_2 = __Pyx_PyObject_GetAttrStr(__pyx_t_6, __pyx_n_s_empty); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  __pyx_t_6 = PyInt_FromSsize_t(__pyx_v_left_size); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = PyTuple_New(1); if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __Pyx_GIVEREF(__pyx_t_6);
  PyTuple_SET_ITEM(__pyx_t_4, 0, __pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_6 = __Pyx_PyDict_NewPresized(1); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __Pyx_GetModuleGlobalName(__pyx_t_3, __pyx_n_s_np); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_5 = __Pyx_PyObject_GetAttrStr(__pyx_t_3, __pyx_n_s_intp); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  if (PyDict_SetItem(__pyx_t_6, __pyx_n_s_dtype, __pyx_t_5) < 0) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_2, __pyx_t_4, __pyx_t_6); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 988, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if (!(likely(((__pyx_t_5) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_5, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 988, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_5);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_right_indexer.rcbuffer->pybuffer, (PyObject*)__pyx_v_right_indexer, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES| PyBUF_WRITABLE, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_right_indexer.diminfo[0].strides = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_right_indexer.diminfo[0].shape = __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 988, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_right_indexer = ((PyArrayObject *)__pyx_t_5);
  __pyx_t_5 = 0;
 0989: 
 0990:     # search both forward and backward
+0991:     bli, bri = asof_join_backward(left_values, right_values,
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_6, __pyx_n_s_asof_join_backward); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_4 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_4)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_4);
  __pyx_t_2 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 991, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
/* … */
  if (!(likely(((__pyx_t_6) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_6, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 991, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_6);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bli.rcbuffer->pybuffer, (PyObject*)__pyx_v_bli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_bli.diminfo[0].strides = __pyx_pybuffernd_bli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bli.diminfo[0].shape = __pyx_pybuffernd_bli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bli = ((PyArrayObject *)__pyx_t_6);
  __pyx_t_6 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_bri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_bri.rcbuffer->pybuffer, (PyObject*)__pyx_v_bri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_bri.diminfo[0].strides = __pyx_pybuffernd_bri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_bri.diminfo[0].shape = __pyx_pybuffernd_bri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 991, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_bri = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
+0992:                                   allow_exact_matches, tolerance)
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
/* … */
  __pyx_t_3 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 992, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
  __pyx_t_12 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_6))) {
    __pyx_t_12 = PyMethod_GET_SELF(__pyx_t_6);
    if (likely(__pyx_t_12)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_6);
      __Pyx_INCREF(__pyx_t_12);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_6, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_6)) {
    PyObject *__pyx_temp[5] = {__pyx_t_12, __pyx_t_4, __pyx_t_2, __pyx_t_3, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_6, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_12); __pyx_t_12 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
  } else
  #endif
  {
    __pyx_t_13 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    if (__pyx_t_12) {
      __Pyx_GIVEREF(__pyx_t_12); PyTuple_SET_ITEM(__pyx_t_13, 0, __pyx_t_12); __pyx_t_12 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_4);
    PyTuple_SET_ITEM(__pyx_t_13, 0+__pyx_t_8, __pyx_t_4);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_13, 1+__pyx_t_8, __pyx_t_2);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_13, 2+__pyx_t_8, __pyx_t_3);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_13, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_4 = 0;
    __pyx_t_2 = 0;
    __pyx_t_3 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_6, __pyx_t_13, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  }
  __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 991, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_6 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_6 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_13 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_6);
    __Pyx_INCREF(__pyx_t_13);
    #else
    __pyx_t_6 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_6);
    __pyx_t_13 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_3 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 991, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_3);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_3)->tp_iternext;
    index = 0; __pyx_t_6 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_6)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_6);
    index = 1; __pyx_t_13 = __pyx_t_14(__pyx_t_3); if (unlikely(!__pyx_t_13)) goto __pyx_L3_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_3), 2) < 0) __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    goto __pyx_L4_unpacking_done;
    __pyx_L3_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 991, __pyx_L1_error)
    __pyx_L4_unpacking_done:;
  }
+0993:     fli, fri = asof_join_forward(left_values, right_values,
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int8_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int16_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_int64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_int64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint8_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint8_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint16_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint16_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_uint64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_uint64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float32_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float32_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
/* … */
  __Pyx_GetModuleGlobalName(__pyx_t_13, __pyx_n_s_asof_join_forward); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_13);
  __pyx_t_6 = __pyx_memoryview_fromslice(__pyx_v_left_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_6)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_6);
  __pyx_t_3 = __pyx_memoryview_fromslice(__pyx_v_right_values, 1, (PyObject *(*)(char *)) __pyx_memview_get_nn___pyx_t_5numpy_float64_t, (int (*)(char *, PyObject *)) __pyx_memview_set_nn___pyx_t_5numpy_float64_t, 0);; if (unlikely(!__pyx_t_3)) __PYX_ERR(0, 993, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_3);
/* … */
  if (!(likely(((__pyx_t_13) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_13, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  if (!(likely(((__pyx_t_12) == Py_None) || likely(__Pyx_TypeTest(__pyx_t_12, __pyx_ptype_5numpy_ndarray))))) __PYX_ERR(0, 993, __pyx_L1_error)
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_13);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fli.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_9, &__pyx_t_10, &__pyx_t_11);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fli.rcbuffer->pybuffer, (PyObject*)__pyx_v_fli, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_9); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_11);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_9, __pyx_t_10, __pyx_t_11);
      }
      __pyx_t_9 = __pyx_t_10 = __pyx_t_11 = 0;
    }
    __pyx_pybuffernd_fli.diminfo[0].strides = __pyx_pybuffernd_fli.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fli.diminfo[0].shape = __pyx_pybuffernd_fli.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fli = ((PyArrayObject *)__pyx_t_13);
  __pyx_t_13 = 0;
  __pyx_t_7 = ((PyArrayObject *)__pyx_t_12);
  {
    __Pyx_BufFmt_StackElem __pyx_stack[1];
    __Pyx_SafeReleaseBuffer(&__pyx_pybuffernd_fri.rcbuffer->pybuffer);
    __pyx_t_8 = __Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_t_7, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack);
    if (unlikely(__pyx_t_8 < 0)) {
      PyErr_Fetch(&__pyx_t_11, &__pyx_t_10, &__pyx_t_9);
      if (unlikely(__Pyx_GetBufferAndValidate(&__pyx_pybuffernd_fri.rcbuffer->pybuffer, (PyObject*)__pyx_v_fri, &__Pyx_TypeInfo_nn___pyx_t_5numpy_intp_t, PyBUF_FORMAT| PyBUF_STRIDES, 1, 0, __pyx_stack) == -1)) {
        Py_XDECREF(__pyx_t_11); Py_XDECREF(__pyx_t_10); Py_XDECREF(__pyx_t_9);
        __Pyx_RaiseBufferFallbackError();
      } else {
        PyErr_Restore(__pyx_t_11, __pyx_t_10, __pyx_t_9);
      }
      __pyx_t_11 = __pyx_t_10 = __pyx_t_9 = 0;
    }
    __pyx_pybuffernd_fri.diminfo[0].strides = __pyx_pybuffernd_fri.rcbuffer->pybuffer.strides[0]; __pyx_pybuffernd_fri.diminfo[0].shape = __pyx_pybuffernd_fri.rcbuffer->pybuffer.shape[0];
    if (unlikely(__pyx_t_8 < 0)) __PYX_ERR(0, 993, __pyx_L1_error)
  }
  __pyx_t_7 = 0;
  __pyx_v_fri = ((PyArrayObject *)__pyx_t_12);
  __pyx_t_12 = 0;
+0994:                                  allow_exact_matches, tolerance)
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
/* … */
  __pyx_t_2 = __Pyx_PyBool_FromLong(__pyx_v_allow_exact_matches); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 994, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_2);
  __pyx_t_4 = NULL;
  __pyx_t_8 = 0;
  if (CYTHON_UNPACK_METHODS && unlikely(PyMethod_Check(__pyx_t_13))) {
    __pyx_t_4 = PyMethod_GET_SELF(__pyx_t_13);
    if (likely(__pyx_t_4)) {
      PyObject* function = PyMethod_GET_FUNCTION(__pyx_t_13);
      __Pyx_INCREF(__pyx_t_4);
      __Pyx_INCREF(function);
      __Pyx_DECREF_SET(__pyx_t_13, function);
      __pyx_t_8 = 1;
    }
  }
  #if CYTHON_FAST_PYCALL
  if (PyFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  #if CYTHON_FAST_PYCCALL
  if (__Pyx_PyFastCFunction_Check(__pyx_t_13)) {
    PyObject *__pyx_temp[5] = {__pyx_t_4, __pyx_t_6, __pyx_t_3, __pyx_t_2, __pyx_v_tolerance};
    __pyx_t_5 = __Pyx_PyCFunction_FastCall(__pyx_t_13, __pyx_temp+1-__pyx_t_8, 4+__pyx_t_8); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_XDECREF(__pyx_t_4); __pyx_t_4 = 0;
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_6); __pyx_t_6 = 0;
    __Pyx_DECREF(__pyx_t_3); __pyx_t_3 = 0;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
  } else
  #endif
  {
    __pyx_t_12 = PyTuple_New(4+__pyx_t_8); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    if (__pyx_t_4) {
      __Pyx_GIVEREF(__pyx_t_4); PyTuple_SET_ITEM(__pyx_t_12, 0, __pyx_t_4); __pyx_t_4 = NULL;
    }
    __Pyx_GIVEREF(__pyx_t_6);
    PyTuple_SET_ITEM(__pyx_t_12, 0+__pyx_t_8, __pyx_t_6);
    __Pyx_GIVEREF(__pyx_t_3);
    PyTuple_SET_ITEM(__pyx_t_12, 1+__pyx_t_8, __pyx_t_3);
    __Pyx_GIVEREF(__pyx_t_2);
    PyTuple_SET_ITEM(__pyx_t_12, 2+__pyx_t_8, __pyx_t_2);
    __Pyx_INCREF(__pyx_v_tolerance);
    __Pyx_GIVEREF(__pyx_v_tolerance);
    PyTuple_SET_ITEM(__pyx_t_12, 3+__pyx_t_8, __pyx_v_tolerance);
    __pyx_t_6 = 0;
    __pyx_t_3 = 0;
    __pyx_t_2 = 0;
    __pyx_t_5 = __Pyx_PyObject_Call(__pyx_t_13, __pyx_t_12, NULL); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_5);
    __Pyx_DECREF(__pyx_t_12); __pyx_t_12 = 0;
  }
  __Pyx_DECREF(__pyx_t_13); __pyx_t_13 = 0;
  if ((likely(PyTuple_CheckExact(__pyx_t_5))) || (PyList_CheckExact(__pyx_t_5))) {
    PyObject* sequence = __pyx_t_5;
    Py_ssize_t size = __Pyx_PySequence_SIZE(sequence);
    if (unlikely(size != 2)) {
      if (size > 2) __Pyx_RaiseTooManyValuesError(2);
      else if (size >= 0) __Pyx_RaiseNeedMoreValuesError(size);
      __PYX_ERR(0, 993, __pyx_L1_error)
    }
    #if CYTHON_ASSUME_SAFE_MACROS && !CYTHON_AVOID_BORROWED_REFS
    if (likely(PyTuple_CheckExact(sequence))) {
      __pyx_t_13 = PyTuple_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyTuple_GET_ITEM(sequence, 1); 
    } else {
      __pyx_t_13 = PyList_GET_ITEM(sequence, 0); 
      __pyx_t_12 = PyList_GET_ITEM(sequence, 1); 
    }
    __Pyx_INCREF(__pyx_t_13);
    __Pyx_INCREF(__pyx_t_12);
    #else
    __pyx_t_13 = PySequence_ITEM(sequence, 0); if (unlikely(!__pyx_t_13)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_13);
    __pyx_t_12 = PySequence_ITEM(sequence, 1); if (unlikely(!__pyx_t_12)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_12);
    #endif
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
  } else {
    Py_ssize_t index = -1;
    __pyx_t_2 = PyObject_GetIter(__pyx_t_5); if (unlikely(!__pyx_t_2)) __PYX_ERR(0, 993, __pyx_L1_error)
    __Pyx_GOTREF(__pyx_t_2);
    __Pyx_DECREF(__pyx_t_5); __pyx_t_5 = 0;
    __pyx_t_14 = Py_TYPE(__pyx_t_2)->tp_iternext;
    index = 0; __pyx_t_13 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_13)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_13);
    index = 1; __pyx_t_12 = __pyx_t_14(__pyx_t_2); if (unlikely(!__pyx_t_12)) goto __pyx_L5_unpacking_failed;
    __Pyx_GOTREF(__pyx_t_12);
    if (__Pyx_IternextUnpackEndCheck(__pyx_t_14(__pyx_t_2), 2) < 0) __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_t_14 = NULL;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    goto __pyx_L6_unpacking_done;
    __pyx_L5_unpacking_failed:;
    __Pyx_DECREF(__pyx_t_2); __pyx_t_2 = 0;
    __pyx_t_14 = NULL;
    if (__Pyx_IterFinish() == 0) __Pyx_RaiseNeedMoreValuesError(index);
    __PYX_ERR(0, 993, __pyx_L1_error)
    __pyx_L6_unpacking_done:;
  }
 0995: 
+0996:     for i in range(len(bri)):
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
/* … */
  __pyx_t_15 = PyObject_Length(((PyObject *)__pyx_v_bri)); if (unlikely(__pyx_t_15 == ((Py_ssize_t)-1))) __PYX_ERR(0, 996, __pyx_L1_error)
  __pyx_t_16 = __pyx_t_15;
  for (__pyx_t_17 = 0; __pyx_t_17 < __pyx_t_16; __pyx_t_17+=1) {
    __pyx_v_i = __pyx_t_17;
 0997:         # choose timestamp from right with smaller difference
+0998:         if bri[i] != -1 and fri[i] != -1:
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0);
    if (__pyx_t_20) {
    } else {
      __pyx_t_18 = __pyx_t_20;
      goto __pyx_L10_bool_binop_done;
    }
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 998, __pyx_L1_error)
    }
    __pyx_t_20 = (((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides)) != -1L) != 0);
    __pyx_t_18 = __pyx_t_20;
    __pyx_L10_bool_binop_done:;
    if (__pyx_t_18) {
/* … */
      goto __pyx_L9;
    }
+0999:             bdiff = left_values[bli[i]] - right_values[bri[i]]
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
/* … */
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_bri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 999, __pyx_L1_error)
      }
      __pyx_v_bdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))));
+1000:             fdiff = right_values[fri[i]] - left_values[fli[i]]
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_int64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint8_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint16_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_uint64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float32_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
/* … */
      __pyx_t_22 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_22 < 0) {
        __pyx_t_22 += __pyx_pybuffernd_fri.diminfo[0].shape;
        if (unlikely(__pyx_t_22 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_22 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_23 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_22, __pyx_pybuffernd_fri.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_23 < 0) {
        __pyx_t_23 += __pyx_v_right_values.shape[0];
        if (unlikely(__pyx_t_23 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_23 >= __pyx_v_right_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_fli.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fli.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_t_21 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fli.diminfo[0].strides));
      __pyx_t_8 = -1;
      if (__pyx_t_21 < 0) {
        __pyx_t_21 += __pyx_v_left_values.shape[0];
        if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_21 >= __pyx_v_left_values.shape[0])) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1000, __pyx_L1_error)
      }
      __pyx_v_fdiff = ((*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_right_values.data + __pyx_t_23 * __pyx_v_right_values.strides[0]) ))) - (*((__pyx_t_5numpy_float64_t *) ( /* dim=0 */ (__pyx_v_left_values.data + __pyx_t_21 * __pyx_v_left_values.strides[0]) ))));
+1001:             right_indexer[i] = bri[i] if bdiff <= fdiff else fri[i]
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
/* … */
      if (((__pyx_v_bdiff <= __pyx_v_fdiff) != 0)) {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_19 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_19 < 0) {
          __pyx_t_19 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1001, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1001, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
 1002:         else:
+1003:             right_indexer[i] = bri[i] if bri[i] != -1 else fri[i]
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
/* … */
    /*else*/ {
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_bri.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      if ((((*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bri.diminfo[0].strides)) != -1L) != 0)) {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_bri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_bri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_bri.diminfo[0].strides));
      } else {
        __pyx_t_21 = __pyx_v_i;
        __pyx_t_8 = -1;
        if (__pyx_t_21 < 0) {
          __pyx_t_21 += __pyx_pybuffernd_fri.diminfo[0].shape;
          if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
        } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_fri.diminfo[0].shape)) __pyx_t_8 = 0;
        if (unlikely(__pyx_t_8 != -1)) {
          __Pyx_RaiseBufferIndexError(__pyx_t_8);
          __PYX_ERR(0, 1003, __pyx_L1_error)
        }
        __pyx_t_24 = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_fri.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_fri.diminfo[0].strides));
      }
      __pyx_t_19 = __pyx_v_i;
      __pyx_t_8 = -1;
      if (__pyx_t_19 < 0) {
        __pyx_t_19 += __pyx_pybuffernd_right_indexer.diminfo[0].shape;
        if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
      } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_right_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
      if (unlikely(__pyx_t_8 != -1)) {
        __Pyx_RaiseBufferIndexError(__pyx_t_8);
        __PYX_ERR(0, 1003, __pyx_L1_error)
      }
      *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_right_indexer.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_right_indexer.diminfo[0].strides) = __pyx_t_24;
    }
    __pyx_L9:;
+1004:         left_indexer[i] = bli[i]
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
/* … */
    __pyx_t_19 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_19 < 0) {
      __pyx_t_19 += __pyx_pybuffernd_bli.diminfo[0].shape;
      if (unlikely(__pyx_t_19 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_19 >= __pyx_pybuffernd_bli.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    __pyx_t_21 = __pyx_v_i;
    __pyx_t_8 = -1;
    if (__pyx_t_21 < 0) {
      __pyx_t_21 += __pyx_pybuffernd_left_indexer.diminfo[0].shape;
      if (unlikely(__pyx_t_21 < 0)) __pyx_t_8 = 0;
    } else if (unlikely(__pyx_t_21 >= __pyx_pybuffernd_left_indexer.diminfo[0].shape)) __pyx_t_8 = 0;
    if (unlikely(__pyx_t_8 != -1)) {
      __Pyx_RaiseBufferIndexError(__pyx_t_8);
      __PYX_ERR(0, 1004, __pyx_L1_error)
    }
    *__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_left_indexer.rcbuffer->pybuffer.buf, __pyx_t_21, __pyx_pybuffernd_left_indexer.diminfo[0].strides) = (*__Pyx_BufPtrStrided1d(__pyx_t_5numpy_intp_t *, __pyx_pybuffernd_bli.rcbuffer->pybuffer.buf, __pyx_t_19, __pyx_pybuffernd_bli.diminfo[0].strides));
  }
 1005: 
+1006:     return left_indexer, right_indexer
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;
/* … */
  __Pyx_XDECREF(__pyx_r);
  __pyx_t_5 = PyTuple_New(2); if (unlikely(!__pyx_t_5)) __PYX_ERR(0, 1006, __pyx_L1_error)
  __Pyx_GOTREF(__pyx_t_5);
  __Pyx_INCREF(((PyObject *)__pyx_v_left_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_left_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 0, ((PyObject *)__pyx_v_left_indexer));
  __Pyx_INCREF(((PyObject *)__pyx_v_right_indexer));
  __Pyx_GIVEREF(((PyObject *)__pyx_v_right_indexer));
  PyTuple_SET_ITEM(__pyx_t_5, 1, ((PyObject *)__pyx_v_right_indexer));
  __pyx_r = __pyx_t_5;
  __pyx_t_5 = 0;
  goto __pyx_L0;